Microsoft MVP성태의 닷넷 이야기
글쓴 사람
홈페이지
첨부 파일
 

윈도우 배치(Batch) 스크립트에서 날짜/시간 문자열을 구하는 방법

그동안, 배치 스크립트에서 다음과 같은 코드로 로그 파일의 접미사로 사용했는데요.

SET DATETEXT=%date:~0,4%%date:~5,2%%date:~8,2%
SET TIMETEXT=%time:~0,2%%time:~3,2%%time:~6,2%

echo %DATETEXT%_%TIMETEXT%
SET LOGFILENAME=result_%DATETEXT%_%TIMETEXT%.log

이게 좀 문제가 있군요. ^^

가령, 위의 스크립트는 날짜가 yyyy-MM-dd, 시간은 tt hh:mm과 같은 식으로 출력하도록 설정된 윈도우에서만 잘 동작합니다. 일례로 영어권 윈도우 운영체제에서는 다음과 같이 아예 엉망이 되어 버립니다.

C:\> SET DATETEXT=%date:~0,4%%date:~5,2%%date:~8,2%

C:\> SET TIMETEXT=%time:~0,2%%time:~3,2%%time:~6,2%

C:\> echo %DATETEXT%_%TIMETEXT%
10/1/218_152045

사실, 한국어 윈도우에서도 문제가 있는 것이 밤 0시인 경우에는 다음과 같은 식으로 나오기까지 합니다.

// 2018년 10월 16일 0시 16분 55초

20181016_ 01655

음... ^^; 분명히 개선이 필요하군요. 다행히 검색해 보면 다양한 해결 방법이 있습니다.

Creating a file name as a timestamp in a batch job
; https://stackoverflow.com/questions/1064557/creating-a-file-name-as-a-timestamp-in-a-batch-job/18687568

그중에서, 개인적으로 PowerShell을 이용한 해법이 가장 나아 보입니다.

REM WriteLog.bat

for /f %%i in ('powershell -c "get-date -format yyyyMMdd_HHmmss"') do set DATETIME=%%i
SET LOGFILENAME=result_%DATETIME%.log

echo %LOGFILENAME%

[출력 결과]

result_20181016_002818.log




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]





[최초 등록일: ]
[최종 수정일: 10/16/2018 ]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer@outlook.com

비밀번호

댓글 쓴 사람
 




1  2  3  4  5  6  7  8  9  10  [11]  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
11830정성태2/26/2019667오류 유형: 522. 이벤트 로그 - Error opening event log file State. Log will not be processed. Return code from OpenEventLog is 87.
11829정성태12/12/2019800개발 환경 구성: 430. 마이크로소프트의 CoreCLR 프로파일러 예제 빌드 방법 - 리눅스 환경 [1]
11828정성태2/26/20191326개발 환경 구성: 429. Component Services 관리자의 RuntimeBroker 설정이 2개 있는 경우
11827정성태2/26/2019959오류 유형: 521. Visual Studio - Could not start the 'rsync' command on the remote host, please install it using your system package manager.
11826정성태2/26/2019805오류 유형: 520. 우분투에 .NET Core SDK 설치 시 패키지 의존성 오류
11825정성태2/25/20192098개발 환경 구성: 428. Visual Studio 2019 - CMake를 이용한 리눅스 빌드 환경 설정 [1]
11824정성태2/25/20191158오류 유형: 519. The SNMP Service encountered an error while accessing the registry key SYSTEM\CurrentControlSet\Services\SNMP\Parameters\TrapConfiguration. [1]
11823정성태2/21/2019756오류 유형: 518. IIS 관리 콘솔이 뜨지 않는 문제
11822정성태2/20/2019797오류 유형: 517. docker에 설치한 MongoDB 서버로 연결이 안 되는 경우
11821정성태2/20/2019881오류 유형: 516. Visual Studio 2019 - This extension uses deprecated APIs and is at risk of not functioning in a future VS update. [1]
11820정성태2/20/20192401오류 유형: 515. 윈도우 10 1809 업데이트 후 "User Profiles Service" 1534 경고 발생
11819정성태2/20/2019965Windows: 158. 컴퓨터와 사용자의 SID(security identifier) 확인 방법
11818정성태2/20/20191187VS.NET IDE: 131. Visual Studio 2019 Preview의 닷넷 프로젝트 빌드가 20초 이상 걸리는 경우 [2]
11817정성태2/17/20191052오류 유형: 514. WinDbg Preview 실행 오류 - Error : DbgX.dll : WindowsDebugger.WindowsDebuggerException: Could not load dbgeng.dll
11816정성태2/17/2019912Windows: 157. 윈도우 스토어 앱(Microsoft Store App)을 명령행에서 직접 실행하는 방법
11815정성태2/14/20191209오류 유형: 513. Visual Studio 2019 - VSIX 설치 시 "The extension cannot be installed to this product due to prerequisites that cannot be resolved." 오류 발생
11814정성태2/12/2019740오류 유형: 512. VM(가상 머신)의 NT 서비스들이 자동 시작되지 않는 문제
11813정성태2/12/2019941.NET Framework: 809. C# - ("Save File Dialog" 등의) 대화 창에 확장 속성을 보이는 방법
11812정성태2/11/2019686오류 유형: 511. Windows Server 2003 VM 부팅 후 로그인 시점에 0xC0000005 BSOD 발생
11811정성태2/11/2019957오류 유형: 510. 서버 운영체제에 NVIDIA GeForce Experience 실행 시 wlanapi.dll 누락 문제
11810정성태2/11/2019738.NET Framework: 808. .NET Profiler - GAC 모듈에서 GAC 비-등록 모듈을 참조하는 경우의 문제
11809정성태2/11/2019955.NET Framework: 807. ClrMD를 이용해 메모리 덤프 파일로부터 특정 인스턴스를 참조하고 있는 소유자 확인
11808정성태2/8/20191452디버깅 기술: 123. windbg - 닷넷 응용 프로그램의 메모리 누수 분석
11807정성태1/29/20191009Windows: 156. 가상 디스크의 용량을 복구 파티션으로 인해 늘리지 못하는 경우 [3]
11806정성태1/29/20191011디버깅 기술: 122. windbg - 덤프 파일로부터 PID와 환경 변수 등의 정보를 구하는 방법
11805정성태1/28/20191628.NET Framework: 806. C# - int []와 object []의 차이로 이해하는 제네릭의 필요성 [2]파일 다운로드1
1  2  3  4  5  6  7  8  9  10  [11]  12  13  14  15  ...