Я хочу создать пакетный скрипт, который будет рекурсивно искать указанные каталоги, используя IF NOT EXIST чтобы выдать ошибку, если папки нигде не могут быть найдены. Вот что у меня так далеко:

IF NOT EXIST %FOLDER1% goto :ERROR
IF NOT EXIST %FOLDER2% goto :ERROR
IF NOT EXIST %FOLDER3% goto :ERROR

:ERROR
echo There aren't any folders to clean...
PAUSE goto :END
goto END

Я буду заменять %FOLDER1% , %FOLDER2% , %FOLDER3% другими именами в зависимости от обстоятельств и того, какие папки необходимо очистить. Может показаться, что мой текущий скрипт ищет только файлы, как мне определить каталоги с этим синтаксисом?

1 ответ1

1

Я включил для вас простой способ сделать это и поддерживать список папок в одном и том же скрипте, чтобы вы могли вносить изменения по мере необходимости, открыв скрипт и изменив его соответствующим образом.

По сути , это будет называть :List подпрограммой , которая будет содержать Arrary переменную и это значения , разделенные запятыми и заключены в двойные кавычки , для каждого пути к папке , которую вы хотите проверить. Затем он GOTO :EOF передает управление обратно к исходному CALL а затем с помощью простого цикла for вы можете итерировать значения переменной %Array% по одному против логики IF NOT EXIST .

@ECHO ON

CALL :List
FOR %%A IN (%Array%) DO (
    IF NOT EXIST "%%~A" ECHO %%~A Does Not Exist
)
EXIT 

:List
::: Maintain your folder paths in the 'SET Array=' as values enclosed by double quotes and separated by commas
SET Array="C:\Folder\Path1", "X:\\Folder\\Math2", "\\server\Bath3", "c:/Folder/Wrath4"
GOTO :EOF

Дополнительные ресурсы

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .