Windows 文件名中的MS-DOS时间戳

Windows 文件名中的MS-DOS时间戳,windows,dos,Windows,Dos,我在批处理文件中有以下内容 set timefmt=%TIME:~0,2%%TIME:~3,2%%TIME:~6,2% dir *.* > logfile_%timefmt%.log 这在上午10点之后可以很好地工作,但由于它在时间戳中添加了一个空格,而不是前导的0,所以在开始之前就失败了 在MS-DOS中是否有方法创建前导为0的时间戳? 我更喜欢使用相当标准的命令,以便它从Windows XP开始工作。最好只获取一次时间,然后再解析元素。 第三行将用0替换空格 set timefmt

我在批处理文件中有以下内容

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

dir *.* > logfile_%timefmt%.log
这在上午10点之后可以很好地工作,但由于它在时间戳中添加了一个空格,而不是前导的0,所以在开始之前就失败了

在MS-DOS中是否有方法创建前导为0的时间戳?
我更喜欢使用相当标准的命令,以便它从Windows XP开始工作。

最好只获取一次时间,然后再解析元素。 第三行将用0替换空格

set timefmt=%time%
set timefmt=%TIMEFMT:~0,2%%TIMEFMT:~3,2%%TIMEFMT:~6,2%
set timefmt=%TIMEFMT: =0%
dir *.* > logfile_%timefmt%.log

最好只获取一次时间,然后也解析元素。 第三行将用0替换空格

set timefmt=%time%
set timefmt=%TIMEFMT:~0,2%%TIMEFMT:~3,2%%TIMEFMT:~6,2%
set timefmt=%TIMEFMT: =0%
dir *.* > logfile_%timefmt%.log

我也有这个问题,但我有不同地区的计算机,有些显示日期为yyyy-mm-dd,有些显示日期为mm/dd/yyyy。有些是12小时制,有上午和下午,有些是24小时制

…所以我最终拼凑起来。实际上,该工具只是打印出时间戳,但有一个示例说明了如何将其放入环境变量中:

for /f %%x in ('@timestamp.exe') do set TIMESTAMP=%%x

…然后您可以任意使用%TIMESTAMP%。

我也有这个问题,但我有不同区域设置的计算机,有些显示日期为yyyy-mm-dd,有些显示日期为mm/dd/yyyy。有些是12小时制,有上午和下午,有些是24小时制

…所以我最终拼凑起来。实际上,该工具只是打印出时间戳,但有一个示例说明了如何将其放入环境变量中:

for /f %%x in ('@timestamp.exe') do set TIMESTAMP=%%x
…然后您可以任意使用%TIMESTAMP%。

对一个与此问题相近的问题有很多答案。我之所以在这里插入这句话,是因为谷歌首先给出了这个答案,这样赶时间的用户可能会错过另一条线索。

对一个与此问题相近的问题有很多答案。我之所以在这里插入这句话,是因为谷歌首先给出了这个答案,这样赶时间的用户可能会错过另一条线索。

我也有这个问题。 所以我做了这个。这让我跨过了障碍。 :STEP_邮戳 :: REM将日期戳设置为YYYYMMDD 设置v_datestampYYYY=%date:~6,4% 设置v_datestampMM=%date:~3,2% 设置v_datestampDD=%date:~0,2% 设置v_日期戳=%v_datestampYYYY%%v_datestampMM%%v_datestampDD% :: REM将时间戳设置为HHMMS 设置HH=%time:~0,2% ::确保小时始终为2位数 如果%HH%==0,则设置HH=00 如果%HH%==1,则设置HH=01 如果%HH%==2,则设置HH=02 如果%HH%==3,则设置HH=03 如果%HH%==4,则设置HH=04 如果%HH%==5,则设置HH=05 如果%HH%==6,则设置HH=06 如果%HH%==7,则设置HH=07 如果%HH%==8,则设置HH=08 如果%HH%==9,则设置HH=09 设置MM=%time:~3,2% 设置SS=%time:~6,2% 设置v_时间戳=%HH%-%MM%-%SS% 我也有这个问题。 所以我做了这个。这让我跨过了障碍。 :STEP_邮戳 :: REM将日期戳设置为YYYYMMDD 设置v_datestampYYYY=%date:~6,4% 设置v_datestampMM=%date:~3,2% 设置v_datestampDD=%date:~0,2% 设置v_日期戳=%v_datestampYYYY%%v_datestampMM%%v_datestampDD% :: REM将时间戳设置为HHMMS 设置HH=%time:~0,2% ::确保小时始终为2位数 如果%HH%==0,则设置HH=00 如果%HH%==1,则设置HH=01 如果%HH%==2,则设置HH=02 如果%HH%==3,则设置HH=03 如果%HH%==4,则设置HH=04 如果%HH%==5,则设置HH=05 如果%HH%==6,则设置HH=06 如果%HH%==7,则设置HH=07 如果%HH%==8,则设置HH=08 如果%HH%==9,则设置HH=09 设置MM=%time:~3,2% 设置SS=%time:~6,2% 设置v_时间戳=%HH%-%MM%-%SS%

注意到在进行字符串操作之前先抓取时间。这是所有语言中的最佳实践。注意在进行字符串操作之前先抓住时间。这是所有语言的最佳实践。