批量循环获取第一个值

时间:2014-02-10 17:03:29

标签: windows batch-file

我正在编写一个批处理文件,我想运行一个for循环,将它的第一个值设置为变量。我只需要命令的第一个值,但我找不到另一种方法来做到这一点。我设置的方式是使用for循环然后是do语句,表示如果未设置变量,则设置变量。问题是当它运行时,循环每次都使用unset变量,而不是在第一个循环之后将其视为设置。

例如,我的if if "%foo%"=="" set foo=%%i,输出看起来像这样 if "" == "" set foo="hello"下一个循环仍会显示if "" == "" set foo="bar"

有没有办法解决这个问题?我尝试设置延迟扩展,但没有帮助。我也对其他只能从命令中获得第一个值的方式持开放态度。

1 个答案:

答案 0 :(得分:3)

set "foo="
for /f %%i in (....) do if not defined foo set "foo=%%i"

或者,如果您可以添加标签

for /f %%i in (....) do set "foo=%%i" & goto :done
:done