For / F仅对一个字符串段执行循环操作

时间:2014-12-03 22:31:58

标签: batch-file for-loop

@echo off
set files=InstallSlinger27.bat:Stash.txt

for /F "delims=:" %%i IN ("%files%") DO (
  ECHO %%i
  if exist %%i (
    echo EXIST
  ) else (
    echo DO NOT EXIST
  )
)

我希望批处理文件检查文件InstallSlinger27.bat是否存在,然后检查Stash.txt文件是否存在。

然而,输出是

InstallSlinger27.bat
EXIST

它不会对第二个文件进行验证。

我尝试过一些东西,过去我做过循环工作。我不想检查%% i然后%% j,因为文件列表可能会增长。

1 个答案:

答案 0 :(得分:2)

@ECHO OFF
SETLOCAL
set files=InstallSlinger27.bat:Stash.txt

FOR %%a IN ("%files::=","%") DO (
 IF EXIST %%a (ECHO %%a exists) else (ECHO %%a missing)
)
GOTO :EOF

虽然我建议您重新考虑您选择的分隔符,因为:可以在完整的文件名中出现。