Добавление к переменной% TIME% в сценарии Windows cmd - PullRequest
9 голосов
/ 19 ноября 2008

Я понимаю, что это, вероятно, можно было бы сделать проще на любом количестве других языков сценариев, но начал делать это быстро в cmd, и теперь мне интересно.

Глядя, чтобы запустить процесс со смещением по времени, когда другой процесс запущен. Скажем, 5 минут, чтобы все было просто. Есть ли способ добавить к переменной% TIME%?

Например:

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

Спасибо за любую помощь

Ответы [ 6 ]

13 голосов
/ 19 ноября 2008

Я только что набрал set/? и обнаружил, что cmd намного лучше, чем старая летучая мышь ...: -)

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

Очевидно, вы можете получить 62 минуты и т. Д., Я позволю вам сделать дополнительную математику ...: -D

4 голосов
/ 21 августа 2013

Вот дополнительная математика:

:: 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%
1 голос
/ 18 мая 2010
        @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
1 голос
/ 10 августа 2009

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
0 голосов
/ 13 июня 2018

Немного расширил "код ванны":

echo ----- time -----
echo %time%
set _hh=%time:~0,2%
set _mm=%time:~3,2%
set _ss=%time:~6,2%
set __time=%_hh%%_mm%%_ss%
echo _%__time%_
echo ----- time -----
echo:
echo ----- date -----
echo %date%
set _Y=%date:~0,4%
set _M=%date:~5,2%
set _D=%date:~8,2%
set __date=%_Y%%_M%%_D%
echo _%__date%_
echo ----- date -----
pause

Выходы 205146 для% __ time%

Выходы 20180613 для% __ date%

0 голосов
/ 02 апреля 2014

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
...