En un archivo por lotes, necesito extraer un mes, día, año del comando de fecha. Así que usé lo siguiente, que esencialmente analiza el comando Fecha para extraer sus subcadenas en una variable:
set Day=%Date:~3,2%
set Mth=%Date:~0,2%
set Yr=%Date:~6,4%
Todo esto es genial, pero si implemento este archivo por lotes en una máquina con una configuración regional / país diferente, falla porque el mes, el día y el año están en diferentes ubicaciones.
¿Cómo puedo extraer mes, día y año independientemente del formato de fecha?
windows-7
windows-xp
batch
date
AngryHacker
fuente
fuente
Respuestas:
Fuente: http://ss64.com/nt/syntax-getdate.html
Método 2 (cmd simple)
GetDate.cmd
Método 1 (cmd + vb)
GetDate.cmd
getdate.vbs
fuente
Set _second=00%%K
al extraer dewmic
y rellene con ceros a la izquierda como los demás.Windows XP y posterior
getDate.cmd
Salida
fuente
ECHO %year%-%month%-%day%
formato compatible con ISO y el sistema de archivos (sin mencionar que se clasifica automáticamente por año-mes-día). :-).Sé que no es exactamente lo que pediste, pero utilizo el puerto de Windows de la
date
aplicación Linux desde un comando dentro del archivo por lotes y luego asigno el resultado a una variable.Todavía tengo que encontrar una manera de obtener la fecha de manera confiable usando solo comandos por lotes.
fuente
Utilice este archivo por lotes para el formato AAAA-MM-DD. Utiliza la herramienta de instrumentación de ventanas que debería estar presente en todas las versiones recientes de Windows para obtener una cadena de fecha y hora que sea independiente de la configuración regional.
Guarde en un archivo por lotes en la ruta (p. Ej.) C: \ windows \ rdate.bat y luego acceda con CALL RDATE.BAT para establecer las variables. Alternativamente, copie el código en su archivo por lotes.
Este formato de fecha es adecuado para nombres de archivo y registros. Se ordena correctamente. La variable logtime agrega una variable de fecha + hora como AAAA-MM-DD-HHMMSS adecuada para su uso en el registro de la actividad del archivo por lotes con una segunda precisión.
Ajuste los formatos de fecha (y hora) como desee. REM la pantalla echos en producción. Los dos números en cada selección de texto son el índice de caracteres de inicio basado en cero y el número de caracteres para copiar, por ejemplo,% datetime: ~ 0,4% toma una subcadena de 4 caracteres que comienza en la posición 0.
fuente
wmic os get localdatetime
Si bien tiene razón en que VS 2008 genera un archivo por lotes, puede ejecutar prácticamente cualquier programa que desee, incluidos los scripts de Powershell y otros programas.
Editar:
Aquí hay algunas preguntas similares:
/programming/1051845/visual-studio-2008-professional-build-process /programming/3049369/embed-application-compilation-time-stamp
Originalmente, iba a tener esto trasladado a SO. . .
fuente
¿Has intentado usar en
NET TIME \\%ComputerName%
lugar deDATE
? Creo queNET TIME
se supone que debe proporcionar los datos en un formato coherente independientemente de la configuración regional.fuente
net time
siempre salgo en formato m / d / aaaa. @AngryHacker, ¿con qué configuración no funcionó para usted?Gracias a la publicación de Shekhar, esto funciona según sea necesario y cero relleno del tiempo.
Salida: LogFile-20151113-0901.txt
fuente
Esto puede estar un poco fuera de tema, pero aquí hay un archivo .bat que escribí para mis propias copias de seguridad programadas y que también llamo desde acciones posteriores a la creación en Visual Studio. Espero que algunos lo encuentren útil.
Guarde lo siguiente en un archivo .bat
fuente
%date%
y%time%
, que tienen en cuenta la configuración regional y no se pueden analizar de una manera predecible como lo solicitó el OP.