run how generate example create commands code batch bat windows batch-file

windows - how - Cómo crear una carpeta con nombre como fecha actual en archivos por lotes(.bat)



how to create a batch file windows 10 (19)

No sé mucho sobre la sintaxis del archivo windows .bat. Mi simple requisito es crear una carpeta en una ubicación específica con el nombre de fecha actual. Intenté buscar esto en Google pero no obtuve ninguna buena opción. ¿Hay alguna manera de hacer esto?


Debe deshacerse de los caracteres ''/'' en la fecha antes de poder usarlos en mkdir de esta manera:

setlocal enableextensions set name=%DATE:/=_% mkdir %name%


Esto debería funcionar:

mkdir %date%

Si no es así, intente esto:

setlocal enableextensions mkdir %date%


Esto depende de la configuración regional de la computadora, de modo que primero verifique el resultado de la fecha usando el símbolo del sistema o haciendo un eco de la fecha.

Para hacerlo, crea un archivo por lotes y agrega el contenido a continuación

echo %date%<br/> pause

Produce una salida, en mi caso, muestra vie 05/06/2015.

Ahora tenemos que deshacernos de la barra inclinada (/)

Para eso, incluya el código a continuación en el archivo por lotes.

set temp=%DATE:/=%

si repite la "temperatura", puede ver la fecha sin la barra en ella.

Ahora todo lo que necesita hacer es formatear la fecha de la manera que desee.

Por ejemplo, necesito la fecha en el formato AAAAMMDD, luego debo establecer el nombre de directorio como se muestra a continuación

Para explicar cómo funciona esto, tenemos que comparar el valor de la temperatura

Viernes 05062015.

ahora posiciona cada personaje con números comenzando por 0.

Viernes 0506201 5

01234567891011

Entonces, para el formato de fecha que necesito es 20150605,

El año 2015, en el que 2 está en la 8ª posición, por lo que desde la 8ª posición hasta 4 puestos, lo hará en 2015.

El mes 06, en el que 0 está en la 6ª posición, por lo que desde la 6ª posición hasta 2 puestos, hará 06.

El día 05, en el que 0 está en la 4ª posición, así que desde la 4ª posición hasta 2 lugares, hará 05.

Finalmente, para configurar el formato final, tenemos el siguiente.

SET dirname="%temp:~8,4%%temp:~6,2%%temp:~4,2%"

Para mejorar este formato de fecha con "-" o "_" entre la fecha, el mes y el año, puede modificar con la siguiente información

SET dirname="%temp:~8,4%-%temp:~6,2%-%temp:~4,2%"

o

SET dirname="%temp:~8,4%_%temp:~6,2%_%temp:~4,2%"

Entonces, el código final del lote será

=============================================== ====

@echo off<br/> set temp=%DATE:/=%<br/> set dirname="%temp:~8,4%%temp:~6,2%%temp:~4,2%"<br/> mkdir %dirname%<br/>

=============================================== ====

El directorio se creará en el lugar donde se ejecuta este lote.


Esto funciona para mí, intenta:

ECHO %DATE:~7,2%_%DATE:~4,2%_%DATE:~12,2%


Estoy sentado exactamente en el mismo barco que usted tan pronto como soy AM antes de las 10 no puedo usar el siguiente, he establecido mi tiempo de 12 horas a 24 horas, cambio hh / mm a HH / mm He intentado la mayoría de los códigos Lo podría encontrar. a continuación ayudará al menos un poco. ajustar y corregir :)

A continuación puede ayudar también

establecer DD =% FECHA: ~ 0,2%

establecer MM =% FECHA: ~ 3,2%

establecer YY =% FECHA: ~ 8,2%

establecer YYYY =% FECHA: ~ 6,4%

establecer hh =% hh: = 0%

establecer mm =% TIEMPO: ~ 3,2%

if "% time: ~ 0,1%" == "" (set folderdate = 0% time: ~ 1,1%) ELSE set folderdate =% time: ~ 0,2%

mkdir folderdate =% date: ~ 6 %% date: ~ 3,2 %% date: ~ 0,2% _% folderdate%% time: ~ 3,2%

copy / Makereport * .CSV / Makereport /% folderdate% /

cd% folderdate% REM - (7zip en c: / batch) Path = c: / batch

7z a Retail.zip * .CSV -pRetailPassword

discos compactos..

del * .csv


Gracias por la información, muy útil. Necesitaba algo que pudiera crear una carpeta de "copia de seguridad" tan a menudo como cada minuto en el mismo directorio, así como también llamarla más adelante en el script. Esto es lo que se me ocurrió:

@ echo off CD %userprofile%/desktop SET Datefolder="%DATE:~4,2%-%DATE:~7,2%-%DATE:~12,2%_%time:~1,1%%time:~3,2%" MD "%Datefolder%"

Esto me da una carpeta en el escritorio del usuario actualmente conectado que se llama: mm-dd-aa_hmm (minuto minuto minuto) es decir: 07-28-15_719


Pruebe esto (un equivalente de bash backquotes):

for /f "tokens=1* delims=" %%a in (''date /T'') do set datestr=%%a mkdir %datestr%

Para obtener más información, consulte http://ss64.com/nt/for_cmd.html


Rápido y sucio: si puede vivir con la fecha UTC en lugar de local, puede usar:

for /f "skip=1" %%d in (''wmic os get localdatetime'') do if not defined mydate set mydate=%%d md %mydate:~0,8%

Funciona en todos los entornos. Solo en XP y superior, sin embargo.


Si quieres el formato mm-dd-yyyy , puedes usar:

mkdir %date:~-10,2%"-"%date:~7,2%"-"%date:~-4,4%


Si su configuración regional tiene el formato de fecha "DDMMYYYY", deberá configurarlo de esta manera:

set datestr=%date:~-4,4%%date:~3,2%%date:~-10,2% mkdir %datestr%


Te gustará esto, cámbialo para que se adapte a tus necesidades.

mkdir today Copy Desktop/test1/*.* today setlocal enableextensions set name=%DATE:/=_% Rename "today" _OlddatabaseBackup_"%name%"


Tuve un problema con esto porque mi servidor ABSOLUTAMENTE tenía que tener su fecha en el formato MM / dd / aaaa, mientras que yo quería que el directorio estuviera en formato YYYY-MM-DD por gusto. A continuación, le mostramos cómo obtenerlo en formato AAAA-MM-DD, independientemente de cómo esté configurada su configuración regional.

Averigüe qué se muestra cuando usa% DATE%:

Desde un símbolo del sistema, escriba:

ECHO %DATE%

El mío salió el 3 de junio de 2013 (como el 6 de marzo de 2013)

Por lo tanto, para obtener un nombre de directorio como 2013-03-06, codifíquelo en su archivo por lotes:

SET dirname="%date:~6,4%-%date:~0,2%-%date:~3,2%" mkdir %dirname%


esta es una solución más simple.

@ECHO OFF set name=%date% echo %name% mkdir %name%


la expresión %date:~p,n% devuelve n número de caracteres de la posición p en la cadena de fecha.

si la cadena de fecha de mi sistema es el 23/1/2015

el comando% date: ~ 1,3% devuelve el valor Mon

el comando% date: ~ 10,4% devuelve el valor 2015

y junto con el comando md (o mkdir)

el comando md% date: ~ 10,4 %% date: ~ 7,2 %% date: ~ 4,2% hace un directorio llamado 20151123

Del mismo modo, si su fecha está dentro del formato Lunes, 23 / Nov / 2015

el comando md% date: ~ 16,4 %% date: ~ 12,3 %% date: ~ 9,2% hace un directorio llamado 2015Nov23

Si accidentalmente devuelve caracteres de la cadena de fecha que no están permitidos en los nombres de carpeta o utiliza valores inválidos para pyn, obtendrá un error. Además, si devuelve valores que incluyen / esto puede crear una carpeta dentro de una carpeta.


https://.com/a/31789045/1010918 La respuesta de foxidrive me ayudó a obtener la carpeta con la fecha y hora que quería. Me gustaría compartir este método aquí, ya que funcionó muy bien para mí y creo que también podría ayudar a otras personas, independientemente de su ubicación.

rem The four lines below will give you reliable YY DD MM YYYY HH Min Sec MS variables in XP Pro and higher. for /f "tokens=2 delims==" %%a in (''wmic OS Get localdatetime /value'') do set "dt=%%a" set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%" set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%" & set "MS=%dt:~15,3%" set "dirname=%YYYY%-%MM%-%DD% %HH%-%Min%-%Sec%" :: remove echo here if you like echo "dirName"="%dirName%"


G: cd G:/app/ mkdir %date:~7,2%%date:~-10,2%%date:~-4,4% cd %date:~7,2%%date:~-10,2%%date:~-4,4% sqlplus sys/sys as sysdba @c:/new


echo var D = new Date() > tmp.js echo D = (D.getFullYear()*100+D.getMonth()+1)*100+D.getDate() >> tmp.js echo WScript.Echo( ''set YYYYMMDD=''+D ) >> tmp.js echo @echo off > tmp.bat cscript //nologo tmp.js >> tmp.bat call tmp.bat mkdir %YYYYMMDD%


for /F “tokens=1-4 delims=/ ” %%A in (‘date /t’) do ( set DateDay=%%A set DateMonth=%%B set DateYear=%%C ) set CurrentDate=%DateDay%-%DateMonth%-%DateYear% md %CurrentDate%

Esto le dará una carpeta recién creada con la fecha de hoy, en el formato DD-MM-YY

Procedencia de: la base de conocimiento de Ali


mkdir %date:~-4,4%%date:~-10,2%%date:~7,2%