![`IF NOT EXIST`를 사용하여 폴더를 재귀적으로 검색하려면 어떻게 해야 합니까?](https://rvso.com/image/1555385/%60IF%20NOT%20EXIST%60%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%ED%8F%B4%EB%8D%94%EB%A5%BC%20%EC%9E%AC%EA%B7%80%EC%A0%81%EC%9C%BC%EB%A1%9C%20%EA%B2%80%EC%83%89%ED%95%98%EB%A0%A4%EB%A9%B4%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
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