Bagaimana saya bisa membatasi waktu eksekusi program baris perintah di windows? Saya tahu di linux ada timeout / timelimit yang tersedia, tetapi saya tidak dapat menemukan utilitas serupa untuk windows.
9
Bagaimana saya bisa membatasi waktu eksekusi program baris perintah di windows? Saya tahu di linux ada timeout / timelimit yang tersedia, tetapi saya tidak dapat menemukan utilitas serupa untuk windows.
Jawaban:
Jika Anda meletakkan ini di notepad dan simpan karena
.bat
akan membuat file batch yang akan melakukan ini.Saya telah menggunakan 10 detik sebagai contoh, hanya menyesuaikan dengan kebutuhan Anda.
Juga, jika Anda menggunakan Vista atau di atas, Anda dapat menghapus
ping
garis dan menggunakan perintah yang jauh lebih mudahtimeout
di tempatnyasumber
start yourprogram.exe yourarguments
. Ya itu akan,taskkill
memiliki opsi untuk membunuh oleh PID tetapi Anda harus mengekstraknya daritasklist
pertama berdasarkan nama, yang kembali pada titik awal jika Anda memiliki beberapa contoh. Ini hanya batasan cmd.> NUL
keping
perintah untuk menekan outputnya.Seperti yang saya tahu tampaknya tidak ada fungsi seperti itu ada, tapi saya pikir itu bisa dilakukan jika Anda membuatnya berjalan sebagai tugas windows melalui Penjadwal Tugas, dari sana Anda dapat mengatur batasan eksekusi, pengaturan bernama: Hentikan tugas jika dijalankan lebih lama dari:, Anda bisa mendapatkan detail lebih lanjut dari sini: http://technet.microsoft.com/en-us/library/cc722178.aspx
sumber
Jika Anda merasa terganggu dengan menggunakan PowerShell:
$app = Start-Process -PassThru -FilePath 'notepad' -ArgumentList 'test.txt'
akan memulai notepad dengan argumen test.txt (Anda dapat memisahkan beberapa argumen dengan,
.Start-Sleep -Seconds 10
akan tidur selama 10-an.Entah
$app.Kill()
atautaskkill /PID $app.Id
akan mematikan aplikasi yang dimulai.Jika Anda lebih suka solusi cmd yang hanya akan memanggil PowerShell untuk memulai proses dan kemudian menyimpannya PID dalam variabel:
for /F %A in ('powershell -Command "(Start-Process -PassThru -FilePath 'notepad' -ArgumentList 'test.txt').Id"') do set PID=%A
(ketika dipanggil dari .bat / .cmd Anda harus menggunakan%%A
bukan%A
). Anda kemudian dapat menggunakan metode @ BaliC tentang waktu habis dantaskkill /PID %PID%
untuk mematikan aplikasi yang dimulai.sumber
Solusi:
Di windows perlu membuat tiga file batch
proses.bat
cm.bat
run.bat
Sekarang Jalankan process.bat. itu akan memulai cm.bat dan run.bat secara bersamaan / paralel. Ketika a.exe dari cm.bat berakhir; cm.bat membunuh run.bat dan karenanya akan berfungsi sebagai batas waktu ubuntu.
sumber