write start simple run make how example create batch bat windows batch-file cmd

windows - start - Crea una carpeta con lote pero solo si no existe



start cmd (9)

Creé esto para mi script que uso en mi trabajo para eyebeam.

:CREATES A CHECK VARIABLE set lookup=0 :CHECKS IF THE FOLDER ALREADY EXIST" IF EXIST "%UserProfile%/AppData/Local/CounterPath/RegNow Enhanced/default_user/" (set lookup=1) :IF CHECK is still 0 which means does not exist. It creates the folder IF %lookup%==0 START "" mkdir "%UserProfile%/AppData/Local/CounterPath/RegNow Enhanced/default_user/"

¿Alguien puede decirme cómo hacer lo siguiente en un script por lotes de Windows? ( *.bat ):

  • Crea una carpeta solo si no existe

Más detalladamente, quiero crear una carpeta llamada VTS en la unidad C:/ , pero solo si esa carpeta no existe. No quiero sobrescribir el contenido de la carpeta si ya existe y se ejecuta el lote.


Prueba esto

ROBOCOPY C:/Users/ADMIN/Pictures c:%date:~4,2%%date:~7,2%%date:~10,4% /MOV

Este lote creará una nueva carpeta y establecerá su nombre como la fecha actual. (03222013) A continuación, moverá los archivos de la carpeta C:/Users/ADMIN/Pictures carpeta recién creada.

Si hoy es 22 de marzo de 2013 ... Todos los archivos en C:/Users/ADMIN/Pictures se 03222013 a una carpeta llamada 03222013 .

Solo se moverán los archivos en C:/Users/ADMIN/Pictures . No se tocará ninguna carpeta en C:/Users/ADMIN/Pictures .


Puedes usar:

if not exist "C:/VTS/" mkdir "C:/VTS"

También puede expandir el código para reemplazar cualquier archivo esperado faltante.

if not exist "C:/VTS/important.file" echo. > "C:/VTS/important.file"


Simplemente llame a mkdir C:/VTS lo que mkdir C:/VTS . Simplemente informará que el subdirectorio ya existe.

Editar: Como otros lo han notado, esto establece el% 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 hizo mención de 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 .


Simplemente use 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á allí, o está allí como un archivo, el comando mkdir se ejecutará, y debería causar un error. Es posible que desee comprobar si VTS también existe como un archivo.


Yo uso de esta manera, debe colocar una barra invertida al final del nombre del directorio para evitar que exista un lugar en un archivo sin extensión con el mismo nombre que el directorio que especificó, nunca use "C: / VTS" porque puede ser un archivo existe con el nombre "VTS" guardado en la partición "C:" , la forma correcta es usar "C: / VTS /" , verifique la barra invertida después de la VTS , así es la forma correcta.

@echo off @break off @title Create folder with batch but only if it doesn''t already exist - D3F4ULT @color 0a @cls setlocal EnableDelayedExpansion if not exist "C:/VTS/" ( mkdir "C:/VTS/" if "!errorlevel!" EQU "0" ( echo Folder created successfully ) else ( echo Error while creating folder ) ) else ( echo Folder already exists ) pause exit



mkdir C:/VTS 2> NUL

crear una carpeta llamada VTS y generar A subdirectory or file TEST already exists en NUL .

o

(C:&(mkdir "C:/VTS" 2> NUL))&

cambie la letra de la unidad a C: mkdir , el error de salida a NUL y ejecute el siguiente comando.


set myDIR=LOG IF not exist %myDIR% (mkdir %myDIR%)