Os arquivos em lote do Windows-10 são baseados no comando DATE, como usar em versões anteriores do Windows

Os arquivos em lote do Windows-10 são baseados no comando DATE, como usar em versões anteriores do Windows

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 DATEcomando.

Estou tendo diferenças nos resultados, relacionadas ao resultado dos DATEresultados 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:

  1. Ao trabalhar com o DATEcomando da linha de comando (preciso de um formato como
    xx dd.MM.yyyy(seja lá o que xxfor) para processamento posterior
  2. 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>(sem xx)

Responder1

No windows 7 você deve usar dddpara 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 /Tlinha 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.

informação relacionada