首页 > 解决方案 > 如何检查阵列中的哪些文件夹存在?

问题描述

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

这个脚本有什么问题?

@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

文件夹内容:

在此处输入图像描述

标签: batch-file

解决方案


你可能有点过于复杂了,为什么不这样做:

@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"

推荐阅读