循环的批处理脚本会终止批处理

时间:2016-06-24 13:28:35

标签: batch-file for-loop cmd termination

我尝试使用for循环并逐行读取文件的内容 该文件是一个xml 并包含由<>

分隔的网址和路径

我正在使用以下代码

set @LOGFILE=F:\nircmd\hosts.xml
:loop
for /F "tokens=2-3 delims=<>" %%a in (%LOGFILE%)do echo "it works"
timeout /t
goto :loop 

批次在遇到for循环后立即终止

我已经尝试暂停或超时批处理 但似乎没什么用 批次无论如何终止

该怎么办?

1 个答案:

答案 0 :(得分:1)

那是因为没有变量LOGFILE;您将变量命名为@LOGFILE。因此for循环遇到错误,因为它找不到要读取的文件,并且诸如这些错误会终止批处理文件。所以要么使用

for /F "tokens=2-3 delims=<>" %%a in (%@LOGFILE%)

set LOGFILE=F:\nircmd\hosts.xml