Wie kann ich mit „IF NOT EXIST“ rekursiv nach Ordnern suchen?

Wie kann ich mit „IF NOT EXIST“ rekursiv nach Ordnern suchen?

Ich möchte ein Batch-Skript erstellen, das rekursiv nach angegebenen Verzeichnissen sucht und IF NOT EXISTeinen Fehler ausgibt, wenn die Ordner nirgends zu finden sind. Hier ist, was ich bisher habe:

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

Ich werde %FOLDER1%, %FOLDER2%, %FOLDER3%durch unterschiedliche Namen ersetzen, je nach den Umständen und den zu bereinigenden Ordnern. Es scheint, dass mein aktuelles Skript nur nach Dateien sucht. Wie soll ich Verzeichnisse mit dieser Syntax definieren?

Antwort1

Ich habe eine einfache Möglichkeit für Sie beigefügt, wie Sie dies tun und die Ordnerliste im selben Skript verwalten können, sodass Sie bei Bedarf Änderungen vornehmen können, indem Sie das Skript öffnen und entsprechend ändern.

Im Wesentlichen wird diesAnrufdie :ListSubroutine, die die Variable und ihre Werte enthält, Arrarygetrennt durch Kommas und eingeschlossen in doppelte Anführungszeichen für jeden Ordnerpfad, den Sie überprüfen möchten. Sie gibt dann GOTO :EOFdie Kontrolle an das Original zurück CALLund dann mit einem einfachenfürSchleife können Sie die %Array%Variablenwerte einzeln entsprechend der IF NOT EXISTLogik iterieren.

@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

Weitere Ressourcen

verwandte Informationen