Qual è il comando cmd di Windows equivalente al timeout del comando ubuntu 5s a.exe <input.txt


0

Sto sviluppando un giudice online per la mia università. Ho bisogno di timeout ogni programma dopo 5 secondi per misurare il limite di tempo. il mio input è il file input.txt e sto compilando e ottenendo output in Ubuntu da questi comandi

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

Questi comandi consentono alla CPU di eseguire programmi per soli 5 secondi. Ora ho bisogno di comandi equivalenti per Windows cmd.

Modificare :

Questa domanda è diversa dalla precedente poiché il processo di timeout di Windows è diverso dal processo di timeout di Ubuntu. Il processo di timeout di Windows attende ma non imposta un tempo definito per l'esecuzione. se l'esecuzione viene eseguita prima del timeout, il timeout di Windows attende ancora quando il timeout di Ubuntu imposta un tempo definito per l'esecuzione del programma e termina dopo l'esecuzione ma non attende sebbene il programma sia terminato. Quindi voglio smettere di aspettare se l'esecuzione è terminata.


Si . Questo dovrebbe essere riaperto. Ho lavorato sodo per trovare la soluzione.
Shawon,

Votato per riaprire. Come notato da techraf, siamo un po 'diversi dai forum: Super User è un sito di domande e risposte. Hai trovato una risposta alla tua domanda, non è solo giusto pubblicarla come risposta, ma è anche incoraggiata: rende più facile per gli altri con questo problema capire che hai effettivamente trovato una soluzione. Inoltre, otterrai la reputazione di ogni voto anche su quella risposta. Invia una risposta con la tua soluzione e rimuovila dalla domanda.
gronostaj,

Eppure è chiuso @gronostaj
shawon il

quindi perché non pubblicare la risposta sull'altra domanda duplicata?
phuclv,

Hai ragione, scusa. Dovrei dormire un po ';)
Gronostaj,

Risposte:


1

Soluzione:

A proposito, ho trovato la mia soluzione. In Windows è necessario creare tre file batch

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

Ora esegui process.bat. inizierà contemporaneamente sia cm.bat che run.bat / parallelamente. Al termine di a.exe da cm.bat; cm.bat uccide run.bat e quindi funzionerà come timeout di Ubuntu.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.