假设foo.txt包含以下内容:
A
乙
C
我有两个批处理文件,一个用于读取foo.txt的内容,另一个用于处理所述内容。如何处理1.bat中foo.txt中每行的内容以在2.bat中运行? 1.bat读入foo.txt并导致运行(在不同的实例中):
2.bat A
2.bat B
2.bat C
答案 0 :(得分:0)
要迭代文件的行,您可以使用FOR /F
。以下内容将读取foo.txt
的每一行并对其执行操作。 (在这种情况下,只需在周围打印等号)
for /f "delims=" %%a in (foo.txt) do ( echo === %%a === )
delims
部分告诉FOR将整行放入%a。默认情况下,如果文件包含选项卡,它将拆分为多个变量。
当您从另一个批处理文件运行批处理文件时,CMD的默认操作是终止第一个脚本并启动第二个脚本。
echo This line prints
2.bat
echo This line never runs because the script was terminated.
要从文件中调用另一个批处理文件,在完成后返回第一个批处理文件,请使用 CALL 命令。
echo Try again...
call 2.bat
echo This line runs as expected.
结合FOR
和CALL
,以下内容将为foo.txt中的每一行调用2.bat一次
for /f "delims=" %%a in (foo.txt) do call 2.bat %%a