Cree una carpeta con lote, pero solo si aún no existe
¿Alguien puede decirme cómo hacer lo siguiente en un script por lotes de Windows? ( *.bat
):
- Cree una carpeta solo si aún no existe
Más detalladamente, quiero crear una carpeta con un nombre VTS
en la C:\
unidad, pero sólo si esa carpeta aún no existe. No quiero sobrescribir el contenido de la carpeta si ya existe y se ejecuta el lote.
Simplemente usa esto: if not exist "C:\VTS\" mkdir C:\VTS
creará un directorio solo si la carpeta no existe.
Tenga en cuenta que esta prueba de existencia devolverá verdadero solo si VTS existe y es un directorio. Si no está ahí, o está ahí como un archivo, el comando mkdir se ejecutará y debería causar un error. Es posible que también desees comprobar si VTS existe como archivo.
if exist C:\VTS\NUL echo "Folder already exists"
if not exist C:\VTS\NUL echo "Folder does not exist"
Consulte también https://support.microsoft.com/en-us/kb/65994
(Actualización del 7 de marzo de 2018; el artículo de Microsoft no está disponible, archivado en https://web.archive.org/web/20150609092521/https://support.microsoft.com/en-us/kb/65994 )
Simplemente llama mkdir C:\VTS
pase lo que pase. Simplemente informará que el subdirectorio ya existe.
Editar: como otros han señalado, esto establece %ERRORLEVEL% si la carpeta ya existe. Si a su lote (o cualquier proceso que lo llame) no le importa el nivel de error, este método funciona bien. Dado que la pregunta no mencionaba evitar el nivel de error, esta respuesta es perfectamente válida. Satisface las necesidades de crear la carpeta si no existe y no sobrescribe el contenido de una carpeta existente. De lo contrario, siga la respuesta de Martin Schapendonk .