我正在尝试检查是否存在一组目录。我正在使用批处理脚本。
我使用“for”循环遍历目录列表并检查该目录是否存在:
set list=%HOME%\bin ^
%HOME%\tmp
for %%A in (%list%) do (
if not exist %%A (
echo %%A
)
)
问题是我收到错误:'C:\ mn \ home \ bin'未被识别为内部或外部命令,可操作程序或批处理文件。
如何使for循环避免执行列表中的项目?
由于
答案 0 :(得分:1)
将列表项放在一行中,
如果它们可能包含用双引号括起来的空格:set list="%HOME%\bin" "%HOME%\tmp"
按空格,逗号,分号,制表符或等号分隔项目。
@Echo off
Set "Home=C:\mn\home"
set list="%HOME%\bin\",^
"%HOME%\tmp\"
for %%A in (%list%) do (
if not exist "%%~A" (
echo doesn't exist %%A
)
)
示例输出:
> SO_5053242.cmd
doesn't exist "C:\mn\home\bin\"
doesn't exist "C:\mn\home\tmp\"
将您的商品直接放入其中可能会更容易:
@Echo off
Set "Home=C:\mn\home"
for %%A in (
"%HOME%\bin\"
"%HOME%\tmp\"
"%HOME%\blahtmp\"
) do (
if not exist "%%~A" (
echo doesn't exist %%A
)
)