파일 이름 YYYY.MM.DD_HH.MM.SS.7z를 어떻게 얻을 수 있나요? 모든 지역 설정에서 작동합니다!
질문이 중복되지 않습니다7-Zip CMD: 아카이브에 현재 날짜를 추가하고 아카이브에 마지막으로 수정된 폴더만 포함왜냐하면 나에게도 몇 초가 필요하기 때문이다.
문안 인사,
답변1
이 질문은 기술적으로는 다른 질문이지만 대답은 본질적으로 다른 질문과 동일합니다.
Echo "%DATE:~-4%.%DATE:~4,2%.%DATE:~7,2%_%TIME:~0,2%.%TIME:~3,2%.%TIME:~6,2%
그러나 모든 지역 설정에서 작동해야 한다고 지정했으므로 해당 답변이 귀하의 요구 사항을 완전히 충족하지 않습니다. 내가 아는 한, cmd.exe 내에서 기본적으로 귀하의 요구를 충족할 수 있는 방법은 없습니다. cmd 대신 powershell에서 이 작업을 수행하는 것이 좋습니다.
답변2
명령:
echo "%DATE:~10,4%.%DATE:~7,2%.%DATE:~4,2%_%TIME:~0,2%.%TIME:~3,2%.%TIME:~6,2%.7z"
산출:
"2012.27.05_22.11.58.7z"
답변3
@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