Как вы используете скрипт в командной строке DOS?Как сделать сценарий в DOS?
The * NIX equivanlent будет:
$ time myscript
real 0m0.886s
user 0m0.846s
sys 0m0.031s
$
Есть ли эквивалент DOS к этому? Благодаря
Как вы используете скрипт в командной строке DOS?Как сделать сценарий в DOS?
The * NIX equivanlent будет:
$ time myscript
real 0m0.886s
user 0m0.846s
sys 0m0.031s
$
Есть ли эквивалент DOS к этому? Благодаря
вы можете поместить это в начале и в конце вашей партии:
echo %time%
единственный способ, я думаю. +1 – dmityugov
Предупреждение: не используйте его непосредственно в команде ('echo% time% & myprog & echo% time%'), потому что расширение для обоих выполняется до того, как команда будет выполнена. –
Это пакетный сценарий DOS, которая будет вычислять разницу во времени для вас, а не просто делать echo %time%
.
Следующий код будет работать нормально, пока ваш «тайм-пользовательский раздел» не займет больше 24 часов. Пожалуйста, простите или дайте мне предложения, это незавершенная работа, в которой я провел около часа.
Замените «ПАУЗА» на вызов вашего скрипта, чтобы ввести собственный код.
DOS BAT FILE СЛЕДУЮЩЕМ:
Примечания: было отредактировано, чтобы исправить проблемы с ведущими нулями восьмеричными, а не десятичной системой.
Примечание: был отредактирован для управления работой над часовым поясом «полночь» и для ввода ведущих нулей в выход.
@echo off
@rem --------------------------------------------
setlocal ENABLEEXTENSIONS
set start_time=%time%
echo Beginning at: %start_time%
echo Running Timed Batch File
echo.
@rem echo %* <-- Extension for all args -- easier than following line
@rem echo %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 ... ...
@rem DO YOUR WORK HERE -- see "call"/PAUSE is here to "fake" work
@rem call userscript.bat %*
PAUSE
set stop_time=%time%
echo.
echo Timed Batch File Completed
echo Start time: %start_time%
echo Stop time : %stop_time%
set TEMPRESULT=%start_time:~0,2%
call:FN_REMOVELEADINGZEROS
set start_hour=%TEMPRESULT%
@rem
set TEMPRESULT=%start_time:~3,2%
call:FN_REMOVELEADINGZEROS
set start_min=%TEMPRESULT%
@rem
set TEMPRESULT=%start_time:~6,2%
call:FN_REMOVELEADINGZEROS
set start_sec=%TEMPRESULT%
@rem
set TEMPRESULT=%start_time:~9,2%
call:FN_REMOVELEADINGZEROS
set start_hundredths=%TEMPRESULT%
set TEMPRESULT=%stop_time:~0,2%
call:FN_REMOVELEADINGZEROS
set stop_hour=%TEMPRESULT%
@rem
set TEMPRESULT=%stop_time:~3,2%
call:FN_REMOVELEADINGZEROS
set stop_min=%TEMPRESULT%
@rem
set TEMPRESULT=%stop_time:~6,2%
call:FN_REMOVELEADINGZEROS
set stop_sec=%TEMPRESULT%
@rem
set TEMPRESULT=%stop_time:~9,2%
call:FN_REMOVELEADINGZEROS
set stop_hundredths=%TEMPRESULT%
set /A start_total=(((((%start_hour%*60)+%start_min%)*60)+%start_sec%)*100)+%start_hundredths%
set /A stop_total=(((((%stop_hour%*60)+%stop_min%)*60)+%stop_sec%)*100)+%stop_hundredths%
set /A total_time=%stop_total% - %start_total%
set /A total_hundredths=%total_time% %% 100
set total_hundredths=00%total_hundredths%
set total_hundredths=%total_hundredths:~-2%
set /A total_time=%total_time%/100
set /A total_sec="%total_time% %% 60"
set total_sec=00%total_sec%
set total_sec=%total_sec:~-2%
set /A total_time=%total_time%/60
set /A total_min="%total_time% %% 60"
set total_min=00%total_min%
set total_min=%total_min:~-2%
set /A total_time=%total_time%/60
set /A total_hour="%total_time% %% 60"
@rem Handle if it wrapped around over midnight
if "%total_hour:~0,1%"=="-" set /A total_hour=%total_hour% + 24
echo Total time: %total_hour%:%total_min%:%total_sec%.%total_hundredths%
@rem --------------------------------------------
@rem Exit the BAT Program
endlocal
goto END
@rem --------------------------------------------
@rem FN_REMOVELEADINGZEROS function
@rem Used to remove leading zeros from Decimal
@rem numbers so they are not treated as Octal.
:FN_REMOVELEADINGZEROS
if "%TEMPRESULT%"=="0" goto END
if "%TEMPRESULT:~0,1%" NEQ "0" goto END
set TEMPRESULT=%TEMPRESULT:~1%
goto FN_REMOVELEADINGZEROS
@rem --------------------------------------------
@rem BAT PROGRAM/FUNCTION FILE EXIT
:END
вы можете использовать timeit.exe из Windows Server 2003 Resource Kit. Вы также получаете дополнительные полезные инструменты и командные порты Unix.
C:\Documents and Settings\Rob>timeit sleep 3
Version Number: Windows NT 5.1 (Build 2600)
Exit Time: 2:40 pm, Thursday, December 10 2009
Elapsed Time: 0:00:03.296
Process Time: 0:00:00.015
System Calls: 7576
Context Switches: 1974
Page Faults: 1072
Bytes Read: 6172
Bytes Written: 11086
Bytes Other: 144432
Этот подход был самым легким для меня с одним раздражением. Я выбрал пакетный файл dos, который находится в каталоге c: \ windows \ system32. Когда я попытался это сделать, мне пришлось ввести полный путь к файлу .bat, хотя это было в моем системном пути. – buzz3791
Вы действительно говорите о DOS или командной оболочке для окон? –
Возможный дубликат [Как измерить время выполнения команды в командной строке Windows?] (Http://stackoverflow.com/questions/673523/how-to-measure-execution-time-of-command-in-windows-command -line) – olibre