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%
注意到在进行字符串操作之前先抓取时间。这是所有语言中的最佳实践。注意在进行字符串操作之前先抓住时间。这是所有语言的最佳实践。