我已经阅读了十几个帖子,我仍然无法解决这个问题(对我感到羞耻)。我的批处理文件
for %%x in (
"%PROGRAMFILES(X86)%"
"%PROGRAMFILES%"
) do (
echo x=%%x
)
)
应该输出
x=C:\Program Files (x86)
x=C:\Program Files
但输出
x="C:\Program Files (x86)"
x="C:\Program Files"
我明白为什么会这样做,但我无法相应地修改for循环。
我的目的是让一个嵌套循环迭代显式给定的文件夹(" ..."作为更多文件夹名称的占位符):
for %%x in (
%PROGRAMFILES(X86)%
%PROGRAMFILES%
...
) do (
for %%y in ( ... ) do (
if exist %%x\%%y (
echo yep
)
)
)
答案 0 :(得分:1)
echo x=%%~x
~
删除封闭引号(在正确的上下文中)
所以在第二部分,
if exist "%%~x\%%~y" (
(需要重新插入引号,因为目标文件名包含空格)