답변:
start yourprogram.exe
ping 127.0.0.1 -n 10
taskkill /im yourprogram.exe
이것을 메모장에 넣고 저장하면 .bat
배치 파일이 만들어 지므로 저장하십시오 .
예를 들어 10 초를 사용했으며 필요에 맞게 조정했습니다.
또한 Vista 이상을 ping
사용하는 경우 줄을 긁어 내고 훨씬 쉬운 timeout
명령을 대신 사용할 수 있습니다
timeout /t 10
start yourprogram.exe yourarguments
. 예, taskkill
PID로 죽일 수있는 옵션이 있지만 tasklist
이름을 기반으로 처음 부터 추출해야 합니다. 여러 인스턴스가있는 경우 정사각형으로 돌아갑니다. 이것은 cmd의 제한 사항입니다.
> NUL
하여 ping
출력을 스쿼시하십시오.
:로 설정라는, 내가 더 같은 기능의 존재가 보인다 알고,하지만 난 당신이 실행의 제한이 설정할 수 있습니다에서이 작업 스케줄러를 통해 윈도우 작업으로 실행되도록 경우가 행할 생각으로 태스크가 실행되는 경우 정지 이상 : http://technet.microsoft.com/en-us/library/cc722178.aspx 에서 자세한 내용을 확인할 수 있습니다.
PowerShell을 사용하여 신경 쓰이는 경우
$app = Start-Process -PassThru -FilePath 'notepad' -ArgumentList 'test.txt'
test.txt 인수로 메모장을 시작합니다 (여러 인수를로 구분할 수 있음) ,
.
Start-Sleep -Seconds 10
10 초 동안자는 것입니다.
하나 $app.Kill()
또는 taskkill /PID $app.Id
시작된 응용 프로그램을 죽일 것이다.
PowerShell 만 호출하여 프로세스를 시작한 다음 PID를 변수에 저장하는 cmd 솔루션을 선호하는 경우
for /F %A in ('powershell -Command "(Start-Process -PassThru -FilePath 'notepad' -ArgumentList 'test.txt').Id"') do set PID=%A
(.bat / .cmd에서 호출 할 때 ) %%A
대신 사용해야 합니다 %A
. 그런 다음 @BaliC의 시간 초과 방법을 사용 taskkill /PID %PID%
하여 시작된 응용 프로그램을 종료 할 수 있습니다.
해결책 :
Windows에서는 3 개의 배치 파일을 만들어야합니다.
process.bat
@ECHO OFF
start /b cm.bat
start cmd.exe /c run.bat
EXIT
cm.bat
@ECHO OFF
a.exe < input.txt > out.txt
taskkill /im a.exe /f
taskkill /im cmd.exe /f
EXIT
run.bat
@ECHO off
timeout /t 5
taskkill /im a.exe /f
taskkill /im cmd.exe /f
EXIT
이제 process.bat를 실행하십시오. cm.bat와 run.bat를 동시에 / 병렬로 시작합니다. cm.bat의 a.exe가 종료 될 때 cm.bat는 run.bat를 종료하므로 우분투 시간 초과로 작동합니다.