
Estoy trabajando en dos máquinas (virtuales):
- La primera es una máquina con Windows 10.
- La segunda es una máquina con Windows 7.
En ambos, los formatos de fecha corta son iguales: dd.MM.yyyy
en ambos, estoy ejecutando el mismo archivo por lotes, según el DATE
comando.
Tengo diferencias en los resultados, relacionados con el resultado de los DATE
resultados del comando:
- En Windows 10:
The current date is: st 22.03.2017
- En Windows 7:
The current date is: 22.03.2017
Como puedes ver, la diferencia se debe a la presencia del nombre de hoy ( st
es una abreviatura de la palabra checa Wednesday
).
El sistema Windows 10 es el maestro, entonces mi pregunta: ¿cómo puedo modificar el sistema Windows-7 para incluir las dos primeras letras del nombre del día?
Como pruebas, ya probé lo siguiente para un formato de fecha corta:
dd dd.MM.yyyy // this is better, the length of the format is good,
but it does not start with the initials of the day's name.
dddd dd.MM.yyyy // this starts with the day's name, but completely,
and I only want the first two letters.
Mientras tanto, eché un vistazo más de cerca al problema: el formato de fecha parece usarse en dos lugares:
- Mientras trabajo con el
DATE
comando de línea de comando (allí necesito un formato comoxx dd.MM.yyyy
(cualquiera quexx
sea) para su posterior procesamiento - Durante lo siguiente
echo
:for /r %DIRECTORY% %I in ("*.*") do echo %~tfI
la idea es mostrar una marca de tiempo y el nombre del archivo, algo como:
22.03.2016 13:50 <filename>
(sinxx
)
Respuesta1
En Windows 7 debes utilizar ddd
que tenga un formato similar, que es de 3 caracteres, no de 2.
Entonces puedes usarddd dd.MM.aaaa. Ese es el formato soportado.
Una forma de llegar a 2 caracteres sería eliminar uno con un archivo por lotes.
Respuesta2
Qué desastre, pero creo que encontré una solución al problema:
El punto es el siguiente: en Windows 10, incluso aunque tenga un formato de fecha simple (como dd.MM.yyyy
), la date /T
línea de comando agrega los primeros caracteres del día, por lo que obtenemos lo siguiente:
date /T
st 22.03.2017
Y mis colegas han construido sus archivos por lotes en torno a la presencia de esos caracteres "st". La ejecución de esos archivos por lotes en versiones inferiores de Windows genera los problemas mencionados.
Al comienzo de los archivos por lotes, agregué la línea:
DATE=xx %DATE%
(muy infantil, lo admito)
Esto hace que los archivos por lotes funcionen en mi computadora con Windows-7.
Para que funcione en ambos sistemas, sólo necesito agregar un check en la plataforma, algo como:
set WINDOWS_10=%ver | findstr /C:"Version 10"%
if "WINDOWS_10"=="" (
set DATE=xx %DATE%)
No lo comprobé todavía en una PC con Windows-10, pero creo que esto funcionará.