데이터베이스 덤프를 만드는 백업 스크립트를 예약했습니다. 파일 이름에 날짜 타임 스탬프를 추가하려면 어떻게해야합니까?
Windows와 CMD에 대해 이야기하고 있습니다.
데이터베이스 덤프를 만드는 백업 스크립트를 예약했습니다. 파일 이름에 날짜 타임 스탬프를 추가하려면 어떻게해야합니까?
Windows와 CMD에 대해 이야기하고 있습니다.
답변:
명령 프롬프트 및 배치 파일에서 및를 사용 %date%
하여 %time%
각각 날짜와 시간을 반환 할 수 있습니다 . 날짜는 정상적으로 작동하지만 반환되는 시간 값에는 콜론이 포함되어 있으며 파일 이름에 사용할 수없는 콜론이 포함되어 있지만이를 제거하는 방법이 있습니다.
다음과 같은 것을 사용하십시오 :
COPY file.txt file_%time:~0,2%%time:~3,2%%time:~6,2%_%date:~-10,2%%date:~-7,2%%date:~-4,4%.txt
이것은 다음과 같은 파일 이름을 생성합니다 file_172215_01062009.txt
업데이트 : 아래 주석은이 명령에 대한 흥미로운 왜곡뿐만 아니라 피할 수있는 몇 가지 잠재적 인 문제가 있습니다.
%DATE%
및 %TIME%
로케일 알고있다! 즉, 유럽 컴퓨터에서는을 얻습니다 DD.MM.YYYY
. Arrgh.
사용 %DATE%
및 / 또는 %TIME
선택적으로 사용하여 파일 이름에 허용되지 않는 문자 대체, 환경 변수 %name:from=to%
( %TIME::=%
모든 콜론을 제거하는 것)을.
이론»echo % date % 2009-06-01 이론»echo % time % 16 : 30 : 41,46 이론»echo % time :: = % 163052,17 이론»echo % time :: =, % 16,30,58,68 이론»echo backup- % date %-% time :: =-%. zip backup-2009-06-01-16-31-18,82.zip
set tmp=%tmp:x=y%
등을 가지고
신뢰할 수있는 유일한 방법은 foxidrive @의 솔루션입니다, 지역 설정은 어떤 적절한 날짜를 얻을 수 /programming/11037831/filename-timestamp-in-windows-cmd-batch-script가
@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"
set "datestamp=%YYYY%%MM%%DD%" & set "timestamp=%HH%%Min%%Sec%"
set "fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%"
echo datestamp: "%datestamp%"
echo timestamp: "%timestamp%"
echo fullstamp: "%fullstamp%"
pause