Cree una carpeta con lote, pero solo si aún no existe

Resuelto Bill asked hace 14 años • 0 respuestas

¿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 VTSen 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.

Bill avatar Nov 12 '10 21:11 Bill
Aceptado

Simplemente usa esto: if not exist "C:\VTS\" mkdir C:\VTScreará 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.

The Answerer avatar Dec 19 '2013 17:12 The Answerer
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 )

Martin Schapendonk avatar Nov 12 '2010 14:11 Martin Schapendonk

Simplemente llama mkdir C:\VTSpase 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 .

Agent_9191 avatar Nov 12 '2010 14:11 Agent_9191