我有许多.bat文件正在打开一个程序并找到每天运行的特定实例。此实例带有时间戳并且每天都会更改。所以我让.bat文件遍历每个查找该实例的数字。格式为YYYYMMDDHHMMSS。
从这个网站我已经有了一个找到上一个工作日的.bat文件。我甚至让它循环遍历数字
问题是如果数字小于10,它需要在它前面有一个0:
01,02,03,04等......
然而,.bat文件吐出的方式是1,2,3等...
这是我到目前为止的代码:
For /L %%G IN (3,1,9) DO (
For /L %%H IN (0,1,59) DO (
If %%H LSS 10 SET %%H=0%%H
ECHO %prevbusday%0%%G%%H
)
)
timeout /t 60
第一行循环播放小时(3到9)
嵌套公式然后遍历分钟(0到59)
答案 0 :(得分:1)
尝试启用delayedexpansion,然后在内部for
循环中设置新的varialbe:
@echo off
setlocal enabledelayedexpansion
For /L %%G IN (3,1,9) DO (
For /L %%H IN (0,1,59) DO (
If %%H LSS 10 (SET hours=0%%H) else (SET hours=%%H)
ECHO %prevbusday%0%%G!hours!
pause
)
)
timeout /t 60
不要忘记在内部for
循环中为新的varialbe使用感叹号
答案 1 :(得分:1)
您无法直接修改%%H
。您必须设置"variable=%%H"
并使用延迟展开来检索!variable!
。只要您无论如何都要设置另一个变量,只需使用变量子串。在所有内容前加零,然后使用最右边的两位数字。
setlocal enabledelayedexpansion
For /L %%G IN (3,1,9) DO (
For /L %%H IN (0,1,59) DO (
set "h=0%%H"
ECHO %prevbusday%0%%G!h:~-2!
)
)
timeout /t 60