Como recursivamente procurar pastas usando 'IF NOT EXIST'?

0

Eu quero fazer um script em lote que pesquisará recursivamente por diretórios especificados usando IF NOT EXIST para lançar um erro se as pastas não puderem ser localizadas em lugar algum. Aqui está o que eu tenho até agora:

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

Eu substituirei %FOLDER1% , %FOLDER2% , %FOLDER3% por nomes diferentes dependendo das circunstâncias e de quais pastas precisam ser limpas. Parece que meu script atual procura apenas por arquivos, como devo definir diretórios com esta sintaxe?

    
por Mr. Mendelli 08.03.2018 / 04:07

1 resposta

1

Eu incluí uma maneira fácil de fazer isso e manter a lista de pastas dentro do mesmo script para que você possa fazer as alterações necessárias, abrindo o script e modificando-o de acordo.

Essencialmente, isso chamará a sub-rotina :List que conterá a variável Arrary e seus valores serão separados por vírgulas e entre aspas duplas para cada caminho da pasta que você deseja verificar. Ele irá então GOTO :EOF passar o controle de volta para o original CALL e, em seguida, com um simples para , você poderá iterar o Valores da variável %Array% , um por um, em relação à lógica 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

Mais recursos

por 09.03.2018 / 08:23

Tags