我有一个简单的for循环,并希望在下面的脚本中为dir中的每个文件运行一个命令。每当我运行它时,我都会收到此错误“INST_PATH \ bin \ testBin.exe此时出乎意料。”
我可以看到它无法扩展env var。似乎在扩展%% i时也存在问题。
此外,如果我想为变量IF提供默认值,而不是在命令行中提供,我该怎么做?对于例如如果用户没有给Dir,我想把它当作目前的dir,我该如何在脚本中做到这一点?
set Dir=%1
set OutDir=%2
pushd %Dir%
for %i in (*.*) do %INST_PATH%\bin\testBin.exe -I=. --cpp_out=. %%i
popd
提前感谢您的帮助。
答案 0 :(得分:1)
两个问题,两个答案:
在批处理文件中,您必须对for变量使用双百分号:
for %%i in (*.*) do echo %%i
设置默认值,检查变量是否为空:
if "%1%=="" (set "dir=Z:\DefaultDir") else (set "dir=%1")
或作为替代方案:
set dir=%1
if not defined dir set "dir=Z:\DefaultDir"