TIMEOUT n'est pas une commande interne (interpréteur de commandes de Windows) cmd.exe
comme POUR ou DIR.
Il s'agit d'une commande externe qui signifie qu'une application de console se trouve dans le répertoire Windows %SystemRoot%\System32
.
En utilisant seulement timeout
sans extension de fichier et sans chemin complet, interpréteur de commandes de Windows recherche d'abord dans le répertoire courant avec timeout.*
pour un fichier ayant une extension de fichier répertorié dans la variable d'environnement PATHEXT.
Si un tel fichier se trouve dans le répertoire courant, interpréteur de commandes de Windows continue la recherche de timeout.*
avec une extension de fichier répertorié dans PATHEXT dans les répertoires définis dans la variable d'environnement PATH .
Sur les versions de Windows Vista et versions ultérieures de Windows PATH du système est défini par:
%SystemRoot%\system32;%SystemRoot%\system32;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;
Pour cette raison, il se trouve généralement d'abord %SystemRoot%\System32\timeout.exe
sur l'utilisation juste timeout
dans un fichier batch.
Mais si le répertoire courant contient un fichier avec un nom timeout.*
ayant une extension de fichier également répertorié dans la variable d'environnement PATHEXT ou PATH a été redéfini localement ou l'ensemble du système par un installateur qui a mis d'autres chemins d'accès au début au lieu de les ajouter à la fin et l'un de ces répertoires contient également un fichier timeout.*
, l'interpréteur de commandes Windows exécute cet exécutable ou ce script.
Les suggestions pour résoudre ce problème:
Utilisation dans le fichier batch %SystemRoot%\System32\timeout.exe
car alors interpréteur de commandes de Windows ne doit pas rechercher cet exécutable et il ne peut pas arriver que le mauvais timeout
est exécuté à tort, à l'exception la variable d'environnement SystemRoot
est modifiée localement ce qui est très peu probable par rapport aux manipulations PATH
.
Ouvrez Windows Panneau de configuration - Système - Paramètres système avancés (lien sur le côté gauche), sélectionnez l'onglet avancée, cliquez sur le bouton Variables d'environnement ..., recherche dans la moitié inférieure dans la liste des Variables système pour Chemin, sélectionnez cette variable d'environnement, cliquez sur Modifiez et déplacez tous les chemins de répertoire à gauche ou au-dessus (dépend de la version Windows) de %SystemRoot%\system32
jusqu'à la fin de la liste des répertoires.
S'il vous plaît signaler à l'auteur de l'application ou du faisceau logiciel modifié système PATH et inséré leurs chemins d'accès au début au lieu de les annexant à la fin de cette mauvaise modification du système de Windows PATH.
Comme Magoo a écrit déjà: un portage timeout.*
d'Unix vers Windows est évidemment exécuté sur votre machine Windows à cause de la déclaration d'aide de sortie. Pour obtenir de l'aide sur une commande sous Windows, la commande doit généralement être exécutée avec le paramètre /?
et non avec -h
ou --help
comme sur Unix.
Timeout fonctionne toujours bien dans un fichier de commandes sur ma version mise à jour de Windows 10. Peut-être essayer ajouter le paramètre -NOBREAK (Juste prendre une chance), ou "timeout/T 7" –
Changez-le pour lire 'timeout.exe 7' ou '"% __ APPDIR __% timeout.exe "7' Si cela fonctionne bien, comme je le suppose, vous trouverez probablement que votre script ou un autre fichier local exécutable nommé' timeout' avec une extension différente cause votre problème . _ (Exécuter la commande donnée par Magoo devrait également identifier ce scénario) _. – Compo