0
카운트 업 타이머는 지금까지, 나는이 다른 이벤트에서 무슨 일이 일어나고 동시에 실행하려면,이배치 - 나는 배치의 카운트 업 타이머를 만들려고
:timer
set time=0
:time
set /a time=%time%+1
ping localhost -n 2 >nul
goto time
문제가 있습니다 같은 배치 파일. 어떻게해야합니까?
카운트 업 타이머는 지금까지, 나는이 다른 이벤트에서 무슨 일이 일어나고 동시에 실행하려면,이배치 - 나는 배치의 카운트 업 타이머를 만들려고
:timer
set time=0
:time
set /a time=%time%+1
ping localhost -n 2 >nul
goto time
문제가 있습니다 같은 배치 파일. 어떻게해야합니까?
배치 스크립트를 실행하는 데 걸리는 시간을 측정 하시겠습니까? PowerShell을 설치 한 경우 Measure-Command
cmdlet을 사용할 수 있습니다. timeit.bat
로
저장이 :
@echo off
>~timeit-%~n1.bat echo(%*
powershell "Measure-Command {Start-Process ~timeit-%~n1.bat -Wait}"
del ~timeit-%~n1.bat
그럼 당신은 그냥 timeit systeminfo
뭔가, 말, systeminfo
의 실행 시간이하고 싶을 때.
(PowerShell에서 Windows 세션 당 최초의 실행 자체 소수에 여러 성가신 초 걸립니다)가 아닌 파워 쉘 솔루션을 선호하는 경우, 여기에 빠른 배치/JScript의 하이브리드 솔루션 (more info)입니다. 또한 powershell 솔루션이 명령에 대한 새 창을 생성하는 반면 동일한 창에서 명령을 실행합니다. timer.bat
으로 저장하십시오 :
@if (@[email protected]) @end /* begin multiline JScript comment
:: timer.bat command args
:: measures execution time of a command
@echo off & setlocal
if "%~1"=="" (
echo Usage: %~nx0 command args
goto :EOF
)
cscript /nologo /e:JScript "%~f0" %*
goto :EOF
:: end batch portion/begin JScript */
var osh = new ActiveXObject('wscript.shell'), cmd = [], b4 = new Date();
for (var i=0; i<WSH.Arguments.length; i++) {
var arg = WSH.Arguments(i);
cmd.push(/\s/.test(arg) ? '"' + arg + '"' : arg);
}
var exe = osh.Exec('cmd /c ' + cmd.join(' '));
while(!exe.StdOut.AtEndOfStream) WSH.Echo(exe.StdOut.ReadLine())
var x = (new Date() - b4)/1000,
d = Math.floor(x/86400),
d = d ? d + ' days ' : '',
h = ('0' + (Math.floor(x/3600) % 24)).slice(-2),
m = ('0' + (Math.floor(x/60) % 60)).slice(-2),
s = Math.floor(x % 60) + x % 1,
s = (s < 10) ? '0'+s : s;
WSH.Echo('\r\nExecution completed in ' + d + h + ':' + m + ':' + s);
[배경에서 타이머를 실행하는 일괄 처리] 가능한 중복. 어떻게?] (http://stackoverflow.com/questions/4340883/batch-that-runs-a-timer-in-the-background-how) – SomethingDark