如何检查数组中的哪些文件夹?

时间:2018-05-19 13:59:46

标签: batch-file

如果它(文件夹)存在,我需要在给定列表的每个文件夹中执行某些命令

这个脚本有什么问题?

@echo off
set FILE_LIST=(a b c d file)

for %%i in %FILE_LIST% do (
  IF EXIST %cd%\%%~i ( 
    set flag=Yes
  ) else ( 
    set flag=No
  )
  :: Just for problem illustration, for SO
  echo "%%i": %flag%
  if %flag%=="Yes" (
    start somecommand %cd%\%%~i\program.exe
  )
)

执行结果:

C:\Temp>script.bat
"a": No
"b": No
"c": No
"d": No
"file": No

文件夹内容:

enter image description here

1 个答案:

答案 0 :(得分:3)

你可能会过度复杂,为什么不这样做:

@echo off
for %%i in (a b c d file) do if exist "%%i" echo "%%i"

所以如果你想运行一个程序,那就做:

@echo off
for %%i in (a b c d file) do if exist "%%i" start "somecmd" "%%i\program.exe"