![¿Cómo puedo buscar carpetas de forma recursiva usando "SI NO EXISTE"?](https://rvso.com/image/1555385/%C2%BFC%C3%B3mo%20puedo%20buscar%20carpetas%20de%20forma%20recursiva%20usando%20%22SI%20NO%20EXISTE%22%3F.png)
Quiero crear un script por lotes que busque de forma recursiva directorios específicos IF NOT EXIST
para 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 :List
subrutina que contendrá la Arrary
variable y sus valores separados por comas y entre comillas dobles para cada ruta de carpeta que desee verificar. Luego devolverá GOTO :EOF
el control al original CALL
y luego con un simpleparabucle puede iterar los %Array%
valores de las variables uno por uno contra la IF NOT EXIST
ló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