
Estou trabalhando em duas máquinas (virtuais):
- A primeira é uma máquina com Windows 10
- O segundo é uma máquina com Windows 7
Em ambos, os formatos de data abreviada são iguais: dd.MM.yyyy
Em ambos, estou executando o mesmo arquivo em lote, com base no DATE
comando.
Estou tendo diferenças nos resultados, relacionadas ao resultado dos DATE
resultados do comando:
- No Windows 10:
The current date is: st 22.03.2017
- No Windows 7:
The current date is: 22.03.2017
Como você pode ver, a diferença se deve à presença do nome de hoje ( st
é uma abreviatura da palavra tcheca para Wednesday
).
O sistema Windows 10 é o mestre, então minha pergunta: como posso alterar o sistema Windows-7 para incluir as duas primeiras letras do nome do dia?
Como testes, já tentei o seguinte para um formato de data abreviada:
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.
Enquanto isso, analisei melhor o problema: o formato de data parece ser usado em dois lugares:
- Ao trabalhar com o
DATE
comando da linha de comando (preciso de um formato comoxx dd.MM.yyyy
(seja lá o quexx
for) para processamento posterior - Durante o seguinte
echo
:for /r %DIRECTORY% %I in ("*.*") do echo %~tfI
A ideia é mostrar um carimbo de data/hora e o nome do arquivo, algo como:
22.03.2016 13:50 <filename>
(semxx
)
Responder1
No windows 7 você deve usar ddd
para ter um formato semelhante, que é de 3 caracteres, não de 2.
Então você pode usarddd dd.MM.aaaa. Esse é o formato suportado.
Uma maneira de chegar a 2 caracteres seria remover um com um arquivo em lote.
Responder2
Que bagunça, mas acredito que encontrei uma solução para o problema:
A questão é a seguinte: no Windows 10, mesmo tendo um formato de data simples (como dd.MM.yyyy
), a date /T
linha de comando adiciona os primeiros caracteres do dia, então obtemos o seguinte:
date /T
st 22.03.2017
E meus colegas construíram seus arquivos em lote em torno da presença desses caracteres "st". A execução desses arquivos em lote em versões anteriores do Windows causa os problemas mencionados.
No início dos arquivos em lote, adicionei a linha:
DATE=xx %DATE%
(muito infantil, eu admito)
Isso faz com que os arquivos em lote funcionem no meu computador com Windows-7.
Para que funcione em ambos os sistemas, só preciso adicionar uma verificação na plataforma, algo como:
set WINDOWS_10=%ver | findstr /C:"Version 10"%
if "WINDOWS_10"=="" (
set DATE=xx %DATE%)
Ainda não verifiquei no PC com Windows 10, mas acredito que isso resolverá o problema.