1

I have the following in a batch file.

set timefmt=%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%

dir *.* > logfile_%timefmt%.log

This works perfectly after 10am, but fails before hand because it adds a space to the timestamp instead of a leading 0.

Is there a way in MS-DOS to create a time stamp with a leading 0? I'd prefer to use fairly standard commands so that it works from Windows XP onward.

4

4 に答える 4

6

一度時間を取得してから、要素も解析することをお勧めします。3 行目はスペースを 0 に置き換えます

set timefmt=%time%
set timefmt=%TIMEFMT:~0,2%%TIMEFMT:~3,2%%TIMEFMT:~6,2%
set timefmt=%TIMEFMT: =0%
dir *.* > logfile_%timefmt%.log
于 2013-05-21T07:34:21.187 に答える
1

私もその問題を抱えていました。
だから私はこれをしました。これでハードルを越えました。

:STEP_DATESTAMP
::
REM 日付スタンプを YYYYMMDD
に設定 set v_datestampYYYY=%date:~6,4%
set v_datestampMM=%date:~3,2%
set v_datestampDD=%date:~0,2%
set v_datestamp=%v_datestampYYYY%%v_datestampMM %%v_datestampDD%
::
REM タイムスタンプを HHMMSS
に設定 set HH=%time:~0,2% :: %HH%==0 の場合
、時間は常に 2 桁であることを確認 %HH%==1 の場合、HH=00 を設定%HH%==2 の場合 HH=01 %HH%==3 の場合 HH=02 を設定 %HH%==4 の場合 HH=03 を 設定 %HH%==5 の場合 HH=04 を設定 %HH の場合HH=05 を設定 %==6 %HH%==7 の場合は HH=06 を設定 %HH%==8 の場合は HH=07 を設定 HH=08 を設定









if %HH%==9 set HH=09
set MM=%time:~3,2%
set SS=%time:~6,2%
set v_timestamp=%HH%-%MM%-%SS%

于 2014-03-21T15:49:35.673 に答える