我有一个批处理文件,它根据某些条件创建名称格式为xyz_yyyyddmmhhmmss(添加时间戳)的令牌文件。问题是,如果令牌文件是从0:00到9:59创建的,则文件名的时间部分是5位数,否则是6位数。要求它保持6位数。
for /f "tokens=1 delims=/ " %%j in ("%date%") do set d1=%%j
for /f "tokens=2 delims=/ " %%j in ("%date%") do set d2=%%j
for /f "tokens=3 delims=/ " %%j in ("%date%") do set d3=%%j
for /f "tokens=4 delims=/ " %%j in ("%date%") do set d4=%%j
for /f "tokens=1 delims=: " %%j in ("%time%") do set t1=%%j
for /f "tokens=2 delims=: " %%j in ("%time%") do set t2=%%j
for /f "tokens=3 delims=:. " %%j in ("%time%") do set t3=%%j
if exist %1xyz_*.tkn (del %1xyz_*.tkn
dir %1*.txt>%1xyz_%d4%%d2%%d3%%t1%%t2%%t3%.tkn)
if not exist %xyz_*.tkn (dir %1*.txt>%1xyz_%d4%%d2%%d3%%t1%%t2%%t3%.tkn)
请提供您的意见。
谢谢!
答案 0 :(得分:0)
很久很久以前,我找到了这方面的基础(非常肯定不是SO),对它进行了一些修改,并将其粘贴到我自那以后编写的几乎每个批处理文件中。我不确定我是否完全理解它是如何工作的,但事实确实如此。你应该能够适应你的格式而不会有太多麻烦。
REM Creates a string in the form of YYYYMMDD-hhmm, with no embedded spaces
SET hh=%time:~0,2%
IF "%time:~0,1%"==" " SET hh=0%hh:~1,1%
SET DateString=%date:~10,4%%date:~4,2%%date:~7,2%-%hh%%time:~3,2%