2013-12-17 59 views
0

我有一个像这样的字符串文件(MyFile.txt的),例如:更改字母按字母顺序在for循环中打印所有令牌

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%%e

谢谢。

回答

0

这样,如果你连工作有各种线Myfile.txt

@echo off&cls 

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

非常简单,完美的作品!谢谢。 – Isdera

0

这个怎么样:

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

,应该工作。

蒙娜丽莎

+1

你不需要“%var:,=”“%''替换',''是一个分隔符。 – SachaDee

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