İşte yerel ayardan bağımsız bir çözüm (SetDateTimeComponents.cmd adlı bir dosyaya kopyalayın):
@echo off
REM This script taken from the following URL:
REM http://www.winnetmag.com/windowsscripting/article/articleid/9177/windowsscripting_9177.html
REM Create the date and time elements.
for /f "tokens=1-7 delims=:/-, " %%i in ('echo exit^|cmd /q /k"prompt $d $t"') do (
for /f "tokens=2-4 delims=/-,() skip=1" %%a in ('echo.^|date') do (
set dow=%%i
set %%a=%%j
set %%b=%%k
set %%c=%%l
set hh=%%m
set min=%%n
set ss=%%o
)
)
REM Let's see the result.
echo %dow% %yy%-%mm%-%dd% @ %hh%:%min%:%ss%
Tüm .cmd komut dosyalarımı aynı klasöre koyuyorum (% SCRIPTROOT%); tarih / saat değerlerine ihtiyaç duyan herhangi bir komut dosyası, aşağıdaki örnekte olduğu gibi SetDateTimeComponents.cmd'yi çağıracaktır:
setlocal
@echo Initializing...
set SCRIPTROOT=%~dp0
set ERRLOG=C:\Oopsies.err
:: Log start time
call "%SCRIPTROOT%\SetDateTimeComponents.cmd" >nul
@echo === %dow% %yy%-%mm%-%dd% @ %hh%:%min%:%ss% : Start === >> %ERRLOG%
:: Perform some long running action and log errors to ERRLOG.
:: Log end time
call "%SCRIPTROOT%\SetDateTimeComponents.cmd" >nul
@echo === %dow% %yy%-%mm%-%dd% @ %hh%:%min%:%ss% : End === >> %ERRLOG%
Örnekte gösterildiği gibi, tarih / saat değerlerini güncellemeniz gerektiğinde SetDateTimeComponents.cmd'yi çağırabilirsiniz. Zaman ayrıştırma komut dosyasını kendi SetDateTimeComponents.cmd dosyasında gizlemek, çirkin ayrıntıları gizlemenin ve daha da önemlisi yazım hatalarını önlemenin güzel bir yoludur.