¿Cómo puedo buscar carpetas de forma recursiva usando "SI NO EXISTE"?

¿Cómo puedo buscar carpetas de forma recursiva usando "SI NO EXISTE"?

Quiero crear un script por lotes que busque de forma recursiva directorios específicos IF NOT EXISTpara generar un error si las carpetas no se pueden ubicar en ningún lugar. Esto es lo que tengo hasta ahora:

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

Reemplazaré %FOLDER1%, %FOLDER2%, %FOLDER3%con diferentes nombres según las circunstancias y las carpetas que deban limpiarse. Parecería que mi script actual sólo busca archivos, ¿cómo debo definir directorios con esta sintaxis?

Respuesta1

He incluido una forma sencilla de hacer esto y mantener la lista de carpetas dentro del mismo script para que pueda realizar los cambios necesarios abriendo el script y modificándolo en consecuencia.

Básicamente esto serállamarla :Listsubrutina que contendrá la Arraryvariable y sus valores separados por comas y entre comillas dobles para cada ruta de carpeta que desee verificar. Luego devolverá GOTO :EOFel control al original CALLy luego con un simpleparabucle puede iterar los %Array%valores de las variables uno por uno contra la IF NOT EXISTlógica.

@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

Recursos adicionales

información relacionada