Как проверить, какие папки из массива существуют? - PullRequest
0 голосов
/ 19 мая 2018

Мне нужно выполнить некоторую команду в каждой папке из данного списка, если она (папка) существует.

Что не так с этим сценарием?

@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 голосов
/ 19 мая 2018

Вы можете немного усложнить это, почему бы просто не сделать:

@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"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...