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 é duplicar7-Zip CMD: Adicione a data atual ao arquivo e inclua apenas a última pasta modificada no arquivojá que preciso de segundos também.
Cumprimentos,
Responder1
Bem, embora esta questão seja tecnicamente uma questão diferente, a resposta é essencialmente a mesma que a outra questão:
Echo "%DATE:~-4%.%DATE:~4,2%.%DATE:~7,2%_%TIME:~0,2%.%TIME:~3,2%.%TIME:~6,2%
Como você especificou que ele deve funcionar com qualquer configuração regional, essa resposta não atende completamente às suas necessidades. Pelo que eu sei, não há como atender às suas necessidades nativamente no cmd.exe. Eu recomendo fazer isso no PowerShell em vez do cmd.
Responder2
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"
Responder3
@echo off
color 4f
mode 40,3
title Rename to date and time
::
:: Chunks gathered 'here & there'...
:: Batch rename 1 by 1 w. short delay,
:: to date + time w. milliseconds =>
:: no overwriting.
::
:: Western European regional settings:
:: OK. ANY regional settings: ?.. Might
:: require 'env. variables' replacement.
::
:7ZLOOP
setlocal
set "source=1_7z-orig-files-dir"
set "target=2_tmp"
::
if not exist "%target%\" md "%target%"
if not exist "%source%\*.7z" goto END
for %%F in ("%source%\*.7z") do (
set "file=%%~nxF"
move /y "%%F" "%target%" >nul
goto :break
)
:break
:: %time:~-2,2% and :loop set
:: to 250 prevent overwriting:
::
set d=%date:~-4,4%-%date:~-7,2%-%date:~-10,2%
set d=%d: =_%
set t=%time:~-11,2%-%time:~-8,2%-%time:~-5,2%__%time:~-2,2%
set t=%t: =0%
::
ren "2_tmp\*.*" "%d%__%t%.*"
:loop
set /a count = count + 1
if %count%==250 goto endloop
goto loop
:endloop
::
move /y 2_tmp\*.* .\
endlocal
goto 7ZLOOP
:END