A inclusão de% date% na criação do arquivo de log está resultando em "caminho não encontrado erro"

0

Eu estou tentando criar arquivos de log dinamicamente nomeados com base na data de hoje. Estou usando os exemplos encontrados na web, mas nenhum deles parece estar funcionando para mim.

C:\Users\Amit>echo hello > %date%.txt
The system cannot find the path specified.

C:\Users\Amit>echo hello > %date%.txt
The system cannot find the path specified.

C:\Users\Amit>echo hello > %date%.dat
The system cannot find the path specified.

C:\Users\Amit>echo hello > %date%.dat
The system cannot find the path specified.



C:\Users\Amit>echo hello > "%date%.dat"
The system cannot find the path specified.

C:\Users\Amit>echo hello > test.txt    #this works



C:\Users\Amit>echo hello >  %date%.txt
The system cannot find the path specified.

C:\Users\Amit>echo "testfile" >> backup-%DATE%.txt
The system cannot find the path specified.

C:\Users\Amit>echo "testfile" > backup-%DATE%.txt
The system cannot find the path specified.

Eu estou copiando e colando um monte deles também. estou a usar Windows 7 .

Eu não consigo descobrir qual erro eu estou cometendo.

Obrigado.

moondra
fonte
O que te faz pensar% date% busca a data fofa?
Ramhound
Hmm data bonito? Tenho certeza que ela é :) @Ramhound
DavidPostill
1
Você precisa definir date primeiro antes de poder usar% date%. Veja minha resposta Lote do Windows, Configuração regional diferente, Renomear diretório YYYYmmDD_HHmmSS para uma maneira de obter uma cadeia de data e hora independente de localidade.
DavidPostill
@DavidPostill Acho que consegui trabalhar agora, brincando com a string de data e extraindo parte por parte.
moondra
@DavidPostill: O que você quer dizer com set date? Como a data do Windows não pôde ser definida?
Axel Kemper

Respostas:

1

Conforme comentado, você pode obter as partes da data por extração:

::  0123456789    offset table
::  12/01/2018    example of %DATE%, dependent on locale/country
set YYYY=%DATE:~6,4%
set DD=%DATE:~0,2%
set MM=%DATE:~3,2%

echo hello > %DD%_%MM%_%YYYY%.txt

Os erros que você recebe são causados ​​por barras no %DATE% saída. Essas barras não são toleradas dentro de nomes de arquivos.

Axel Kemper
fonte
@axeiKemper Sim, depois de remover as barras tudo estava funcionando perfeitamente.
moondra