`IF NOT EXIST`를 사용하여 폴더를 재귀적으로 검색하려면 어떻게 해야 합니까?

`IF NOT EXIST`를 사용하여 폴더를 재귀적으로 검색하려면 어떻게 해야 합니까?

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

나는 이 작업을 수행하고 동일한 스크립트 내에서 폴더 목록을 유지 관리하여 필요에 따라 스크립트를 열고 적절하게 수정하여 변경할 수 있는 쉬운 방법을 포함시켰습니다.

본질적으로 이것은부르다:List변수를 포함할 서브루틴 과 Arrary해당 값은 확인하려는 각 폴더 경로에 대해 쉼표로 구분되고 큰따옴표로 묶입니다. 그런 다음 GOTO :EOF제어권을 원본으로 다시 전달한 CALL다음 간단한 방법으로~을 위한%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

추가 리소스

관련 정보