Что такое команда windows cmd, эквивалентная времени ожидания команды ubuntu 5s a.exe <input.txt

360
shawon

Я разрабатываю онлайн-судью для моего университета. Мне нужно тайм-аут каждой программы через 5 секунд для измерения ограничения по времени. мой ввод - это файл input.txt, и я собираю и получаю вывод в ubuntu с помощью этих команд

g++ -lm tle.cpp timeout 5s a.exe < input.txt 

Эти команды позволяют процессору запускать программы всего 5 секунд. Теперь мне нужны эквивалентные команды для Windows cmd.

Редактировать :

Этот вопрос отличается от предыдущего, так как процесс ожидания Windows отличается от процесса ожидания Ubuntu. Процесс ожидания Windows просто ожидает, но не устанавливает определенного времени для выполнения. Если выполнение выполнено до истечения времени ожидания, то время ожидания Windows все еще ожидает, когда время ожидания Ubuntu устанавливает определенное время для выполнения программы и завершается после выполнения, но не ожидает, когда программа завершается. Поэтому я хочу перестать ждать, если выполнение будет завершено.

0
Да уж . Это должно быть вновь открыто, так как я много работал, чтобы найти решение. shawon 7 лет назад 0
Проголосовал за открытие. Как отметил techraf, мы немного отличаемся от форумов - Super User - это сайт вопросов и ответов. Вы нашли ответ на свой вопрос, это не только хорошо, чтобы опубликовать его как ответ, но и поощряется: другим людям с этой проблемой легче понять, что вы действительно нашли решение. Более того, вы будете получать репутацию за каждый ответ на этот ответ тоже. Пожалуйста, отправьте ответ с вашим решением и удалите его из вопроса. gronostaj 7 лет назад 0
Все же это закрыто @gronostaj shawon 7 лет назад 0
так почему бы просто не опубликовать ответ на другой дублирующий вопрос? phuclv 7 лет назад 0
Ты прав, прости. Я должен немного поспать;) gronostaj 7 лет назад 0
Я вижу, вы разместили свой ответ на отмеченный дубликат вопроса. Пожалуйста, отредактируйте свой вопрос, чтобы удалить ответ. Спасибо за участие в Super User. Twisty Impersonator 7 лет назад 0

1 ответ на вопрос

0
shawon

Решение :

Кстати, я нашел свое решение. В windows нужно сделать три пакетных файла

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 одновременно / параллельно. Когда a.exe из cm.bat завершается; cm.bat убивает run.bat и, таким образом, он будет работать как тайм-аут Ubuntu.