在for循环中按字母顺序更改字母以打印所有标记

时间:2013-12-17 15:51:59

标签: batch-file

我有一个带有这样字符串的文件(MyFile.txt),例如:

VAR1,VAR2,ASDS,123,var6

这个文件是自动生成的,我不知道它会有多少个单词。

我打算打印所有单词,每行一个。并逐一处理它们

for /f "tokens=1-30 delims=," %%a in (MyFile.txt) do call Process.bat %%a

在Process.bat中我有ping %1例如。

这只处理第一个令牌。我的问题是,我需要处理所有令牌,但我需要自动执行,是否有办法循环遍历所有现有令牌?

在我的例子中:var1,var2,asds,123,var6将是:do call Process.bat %%a,然后是%%b,然后是%%c,然后是%%d和{{1 }}

谢谢。

3 个答案:

答案 0 :(得分:0)

这个怎么样:

set /p var=<MyFile.txt
set var="%var%"
for %%a in ("%var:,=" "%) do call Process.bat %%a

这应该有用。

莫纳

答案 1 :(得分:0)

您可以合并for来阅读所有行,call来解析行中的变量

试试这个让你入门

@echo off
setlocal enabledelayedexpansion 
for /f  %%a  in (file.txt) do (
  set line=%%a
  set line=!line:,= !
  call :parms !line!
)  
goto :eof

:parms
if "%1"=="" goto :eof
echo ping %1
shift
goto :parms

goto :eof

答案 2 :(得分:0)

即使您在Myfile.txt

中有各种行,这也会有效
@echo off&cls

for /f "delims=" %%a in (MyFile.txt) do for %%b in (%%a) do call Process.bat %%b