2008-11-19 10 views
8

Zdaję sobie sprawę, że prawdopodobnie można to zrobić łatwiej w dowolnej liczbie innych językach skryptowych, ale zaczęło to robić szybko w cmd i teraz jestem ciekawa.Dodawanie do zmiennej%% TIME w Windows cmd skrypt

Szukam rozpoczęcia procesu w ramach offsetu do momentu rozpoczęcia innego procesu. Powiedzmy, 5 minut, aby było to proste. Czy istnieje sposób na dodanie do zmiennej% TIME%?

Na przykład:

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

Dzięki za wszelką pomoc

Odpowiedz

12

Właśnie wpisany set/? i odkrył cmd jest znacznie lepsza niż stary bat ... :-)

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

Oczywiście, możesz uzyskać 62 minuty itd., pozwalam ci wykonać dodatkową matematykę ... :-D

1

2 Phi LOO

dzięki

Mój kod kąpiel:

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 
+0

_ "kod kąpieli" _: D – akinuri

1
 @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 
2

Oto dodatkowa matematyka:

:: 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 /a h=0 
:: pad zeros if necessary 
if %mn% leq 9 set mn=0%mn% 
if %hr% leq 9 set hr=0%hr% 
+0

jeśli% hr% leq 9 zestaw hr = 0% godz .: ~ 1,1% – serega386

0

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 
Powiązane problemy