Adicione o registro de data e hora aos arquivos presentes em arquivos .txt

1

Eu tenho um script em lote (com base em esta resposta ):

@echo off
for /f "delims=" %%x in ('dir /b /s D:\v\*.*') do (
 echo %%x>>C:\Users\TechMadmin\Desktop\scripts\a.txt
)
move /y C:\Users\TechMadmin\Desktop\scripts\a.txt C:\Users\TechMadmin\Desktop\scripts\b.txt

A saída do código do lote é

D:\v\a.csv
D:\v\b.txt
D:\v\c.xml

Agora, meu requisito é adicionar registro de data e hora, por exemplo: %date:~4,2%%date:~7,2%%date:~10,4%_%time:~0,2%%time:~3,2%%time:~6,2% aos arquivos de saída.

Exemplo: Meu arquivo de saída é D: \ v \ a.csv, mas agora deve ser

D:\v\a_%date:~4,2%%date:~7,2%%date:~10,4%_%time:~0,2%%time:~3,2%%time:~6,2%.csv
D:\v\b_%date:~4,2%%date:~7,2%%date:~10,4%_%time:~0,2%%time:~3,2%%time:~6,2%.txt
D:\v\c%date:~4,2%%date:~7,2%%date:~10,4%_%time:~0,2%%time:~3,2%%time:~6,2%.xml
    
por user3051956 03.08.2016 / 11:32

1 resposta

1

Meu requisito é adicionar um timestamp

Use o seguinte arquivo em lotes.

@echo off
set datetime=%date:~4,2%%date:~7,2%%date:~10,4%_%time:~0,2%%time:~3,2%%time:~6,2%
for /f "delims=" %%x in ('dir /b /s D:\v\*.*') do (
  echo %%~dpnx_%datetime%%%~xx>>C:\Users\TechMadmin\Desktop\scripts\a.txt
)
move /y C:\Users\TechMadmin\Desktop\scripts\a.txt C:\Users\TechMadmin\Desktop\scripts\b.txt

Notas:

  • %%~dpnx é o nome completo do arquivo, incluindo a unidade e o caminho, mas excluindo a extensão (exemplo D:\v\a ).
  • _ é o caractere de sublinhado.
  • %datetime% é o valor da string de data e hora
  • %%~xx é a extensão do arquivo (exemplo .csv ).
  • >> é o operador de redirecionamento.

  • Não totalmente testado.

    Você está usando uma função dependente de localidade para obter os componentes de data (que não correspondem ao formato de data do meu sistema)

    • Um exemplo simplificado funciona como esperado.

Se você quiser uma solução independente de localidade para os componentes de data e hora, veja minha resposta Imprimir datetime no Windows cmd para obter o código necessário.

Leitura Adicional

por 03.08.2016 / 12:07

Tags