在windows cmd脚本中添加%TIME%variables

我意识到,这可能会在任何其他脚本语言更容易做到,但开始做cmd快现在好奇。

希望以另一个进程启动时的偏移量开始进程。 让我们说5分钟,以保持简单。 有没有办法添加到%TIME%variables?

例如:

start /b foo.exe at %TIME% + 5 minutes bar.exe 

感谢您的帮助

我只是键入set/? 并发现cmd比老蝙蝠好得多::)

 set h=%TIME:~0,2% set m=%TIME:~3,2% set/a m2="m+5" set t2=%h%:%m2% set t2 

显然,你可以得到62分钟等等,我让你做额外的数学… 😀

这是额外的数学:

 :: Get an offset of 1 minute from the current time, accounting for edge cases set hr=%TIME:~0,2% set /a mn=%TIME:~3,2%+1 :: check minutes; greater than 60? add n/60 to hour, n%60 to mins if %mn% geq 60 set /a hr=hr+mn/60 && set /a mn=mn%%60 if %hr% geq 24 set /ah=0 :: pad zeros if necessary if %mn% leq 9 set mn=0%mn% if %hr% leq 9 set hr=0%hr% 

2 PhiLho

谢谢

我的洗澡码:

 set h=%TIME:~0,2% set m=%TIME:~3,2% set s=%TIME:~6,2% set time=%h%_%m%_%s% mkdir c:\test\%time% move c:\test\*.* c:\test\%time% "C:\Program Files\WinRAR\RAR" a -ep c:\test\%time%\ -agDD-MM-YY_hh-mm-ss c:\test\%time%\*.* -zc:\arhiv\HEADERS.TXT move c:\test\%time%\*.rar c:\arhiv\ rmdir c:\test\%time% /S /Q 
  @echo off :: START USAGE ================================================================== ::SET THE NICETIME :: SET NICETIME=BOO :: CALL GetNiceTime.cmd :: ECHO NICETIME IS %NICETIME% :: echo nice time is %NICETIME% :: END USAGE ================================================================== echo set hhmmsss :: this is Regional settings dependant so tweak this according your current settings for /f "tokens=1-3 delims=:" %%a in ('echo %time%') do set hhmmsss=%%a%%b%%c ::DEBUG ECHO hhmmsss IS %hhmmsss% ::DEBUG PAUSE echo %yyyymmdd% :: this is Regional settings dependant so tweak this according your current settings for /f "tokens=1-3 delims=." %%D in ('echo %DATE%') do set yyyymmdd=%%F%%E%%D ::DEBUG ECHO yyyymmdd IS %yyyymmdd% ::DEBUG PAUSE set NICETIME=%yyyymmdd%_%hhmmsss% ::DEBUG echo THE NICETIME IS %NICETIME% ::DEBUG PAUSE 

copy.cmd:

 set hr=%TIME:~0,2% if %hr% leq 9 set hr=0%hr:~1,1% set mydate=%DATE:~6,4%%DATE:~3,2%%DATE:~0,2%-%hr%%TIME:~3,2%%TIME:~6,2% copy file.txt file-%mydate%.txt pause