cmd: inclua data e hora no nome do arquivo

0

Como posso obter um nome de arquivo YYYY.MM.DD_HH.MM.SS.7z? Deve funcionar com qualquer configuração regional!

A questão não está duplicando 7-Zip CMD: Adicione a data atual para arquivar e inclua apenas a última pasta modificada no arquivo , pois também preciso de segundos.

Atenciosamente,

    
por noober 27.05.2012 / 18:56

3 respostas

3

Bem, embora essa questão seja tecnicamente uma questão diferente, a resposta é essencialmente a mesma que a outra pergunta:

Echo "%DATE:~-4%.%DATE:~4,2%.%DATE:~7,2%_%TIME:~0,2%.%TIME:~3,2%.%TIME:~6,2%

Já que você especificou que deve funcionar com qualquer configuração regional, essa resposta não atende completamente às suas necessidades. Tanto quanto eu sei, não há maneira de atender às suas necessidades nativamente dentro cmd.exe. Eu recomendaria altamente fazer isso no powershell em vez de cmd.

    
por 27.05.2012 / 19:45
1

Comando:

echo "%DATE:~10,4%.%DATE:~7,2%.%DATE:~4,2%_%TIME:~0,2%.%TIME:~3,2%.%TIME:~6,2%.7z"

Saída:

"2012.27.05_22.11.58.7z"
    
por 27.05.2012 / 20:13
0

@echo off

cor 4f

modo 40,3

title Renomear para data e hora

::

:: Pedaços reunidos aqui & existe '...

:: Batch renomeia 1 por 1 w. pequeno atraso,

:: até a data + hora w. milissegundos = >

:: sem sobrescrever.

::

:: configurações regionais da Europa Ocidental:

:: OK QUALQUER configuração regional:? .. Pode

:: require 'env. substituição de variáveis.

::

: 7ZLOOP

setlocal

defina "source = 1_7z-orig-files-dir"

definir "target = 2_tmp"

::

se não existir "% target% \" md "% target%"

se não existir "% source% *. 7z" goto END

para %% F em ("% source% *. 7z") do (

set "file = %% ~ nxF"

mover / y "%% F" "% target%" > nul

goto: pausa

: pausa

::% time: ~ -2,2% e: loop set

:: a 250 evitar sobrescrever:

::

set d =% date: ~ -4,4% -% date: ~ -7,2% -% date: ~ -10,2%

definir d =% d: = _%

definir t =% tempo: ~ -11,2% -% tempo: ~ -8,2% -% tempo: ~ -5,2% __% tempo: ~ -2,2%

defina t =% t: = 0%

::

ren "2_tmp *. " "% d% __% t%. "

: loop

set / a count = count + 1

se% count% == 250 goto endloop

goto loop

: endloop

::

move / y 2_tmp *. *. \

endlocal

goto 7ZLOOP

: END

    
por 26.07.2018 / 07:01