Me gustaría poder verificar si existe una determinada carpeta (Carpeta A) y, de ser así, que se muestre un mensaje y luego se salga el archivo por lotes.
Si la carpeta A no existe, me gustaría comprobar si existe otra carpeta (carpeta B). Si FolderB no existe, se debe mostrar un mensaje y se debe crear la carpeta, y si FolderB existe, se debe mostrar un mensaje que lo diga.
¿Alguien tiene alguna idea sobre el código que podría usar simplemente en el bloc de notas para crear un archivo por lotes que me permita hacer esto?
Todo esto debe hacerse en un solo .bat
archivo.
windows
batch-file
usuario3179825
fuente
fuente
Respuestas:
Intenta usar esto:
Reemplazar yourfilename con el nombre de su archivo.
Para ver un directorio, vea este https://jeffpar.github.io/kbarchive/kb/065/Q65994/
la barra diagonal inversa ('\') parece ser suficiente para distinguir entre directorios y archivos ordinarios.
fuente
if exist "c:\folder\nul" echo ok
no funcionó para mí en Windows 7. Lo que funcionó fueif exist "c:\folder\" echo ok
.if exist "networkPath\nul"
puede informar falsamente un archivo como una carpeta en unidades de red de Windows. Lamentablemente, elif exist "networkPath\"
sufre el mismo problema. Consulte la actualización 2015-12-08 en stackoverflow.com/a/8669636/1012053 para obtener una técnica que ha sido confiable en todas mis pruebas.if exist c:\Windows\nul echo ok
diceok
, peroif exist "c:\Windows\nul" echo ok
no dice nada. Como he dicho, mientrasif exist "c:\Program Files\nul" echo ok
no dice nada,if exist "c:\Program Files\" echo ok
diceok
y por lo tanto funciona incluso para el camino con espacios.Creo que la respuesta está aquí (posiblemente duplicada):
¿Cómo probar si un archivo es un directorio en un script por lotes?
Reemplace% VAR% con su directorio. Lea la respuesta original porque incluye detalles sobre el manejo de espacios en blanco en el nombre de la carpeta.
Como dijo foxidrive, esto podría no ser confiable en las ventanas de clase NT. A mí me funciona, pero sé que tiene algunas limitaciones (que puedes encontrar en la pregunta de referencia)
debería ser suficiente para las ventanas modernas.
fuente
if exist "c\:folder\" echo folder exists
E:\NUL