Skip to content

Instantly share code, notes, and snippets.

@MarkZhangTW
Created July 18, 2021 16:13
Show Gist options
  • Save MarkZhangTW/c6015f4f60aad43359e58f3fe8d38594 to your computer and use it in GitHub Desktop.
Save MarkZhangTW/c6015f4f60aad43359e58f3fe8d38594 to your computer and use it in GitHub Desktop.
Batch script template for one line output.
@echo off
setlocal enabledelayedexpansion
rem Parameter List
rem Todo...
rem Return Code List
rem 99: Cannot create %~dp0\log folder.
rem 98: Path %~dp0\log is not a folder.
rem Path
set JOB_BASE=%~dp0
if %JOB_BASE:~-1%==\ set JOB_BASE=%JOB_BASE:~0,-1%
set JOB_NAME=%~n0
rem Timestamp
call :TIMESTAMP
set TIMESTAMP=%yyyy%%MM%%dd% %HH%%mm_%%ss% %SSS%
rem Log
set LOG_FOLDER=%JOB_BASE%\log
set LOG_FILE=%LOG_FOLDER%\%JOB_NAME%.log
set ERR_FILE=%LOG_FOLDER%\%JOB_NAME%.err
if not exist "%LOG_FOLDER%" mkdir "%LOG_FOLDER%"
if errorlevel 1 exit /b 99
dir /ad "%LOG_FOLDER%" >nul 2>&1 || exit /b 98
echo LOG_FILE: %LOG_FILE%
echo ERR_FILE: %ERR_FILE%
:MAIN
echo | set /p =%yyyy%/%MM%/%dd% %HH%:%mm_%:%ss% >>"%LOG_FILE%"
echo | set /p =%yyyy%/%MM%/%dd% %HH%:%mm_%:%ss% >>"%ERR_FILE%"
echo Standard output>>"%LOG_FILE%"
echo Standard error>>"%ERR_FILE%" 2>&1
goto :EOF
:TIMESTAMP
for /f %%i in ('wmic os get localdatetime ^| findstr /v "^$" ^| more +1') do set TIMESTAMP=%%i
set yyyy=%TIMESTAMP:~0,4%
set yy=%TIMESTAMP:~2,2%
set MM=%TIMESTAMP:~4,2%
set dd=%TIMESTAMP:~6,2%
set HH=%TIMESTAMP:~8,2%
set /a hh_=(1%HH% %% 100)
if %hh_% GEQ 12 ( set aa=PM ) else set aa=AM
set /a hh_=%hh_% %% 12
if %hh_% EQU 0 set hh_=12
set mm_=%TIMESTAMP:~10,2%
set ss=%TIMESTAMP:~12,2%
set SSS=%TIMESTAMP:~15,3%
goto :EOF
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment