La commande de fichier par lots PAUSE ne fonctionne pas

Je crée un fichier batch simple pour vous aider dans quelques domaines, et j’ai quelques instructions qui s’impriment aussi bien que je veux que l’utilisateur voie avant de quitter. Actuellement, la fenêtre se ferme très rapidement. J’ai donc ajouté PAUSE à la fin du fichier, mais il ne veut pas fonctionner.

J’ai regardé d’autres questions sur SO et j’ai vérifié pour vérifier que les fins de ligne sont CRLF et que j’ai CRLF à la fin du fichier.

Aucune suggestion?

Si la dernière commande échoue, la pause ne fonctionnera pas.

Vous pouvez le réparer en mettant “call” derrière la commande que vous exécutez (quelle que soit la commande avant la pause), la pause fonctionnera.

Donc, par exemple, j’avais un fichier de commandes phpunit qui ressemblait à ceci:

 phpunit tests/sometests.php pause 

Lorsque phpunit a échoué, il s’est juste arrêté sans faire de pause. En le changeant en ceci, il s’est arrêté correctement:

 call phpunit tests/sometests.php pause 

La dernière commande avant la pause est-elle exécutée avec succès? Vous partagez votre script – au moins les dernières commandes?

Sinon, comme vous semblez utiliser Windows7, essayez la commande Timeout et voyez si cela fonctionne.

J’avais des problèmes même sur l’écho … en supposant que cela était dû à un long fichier batch … Pause était en cours d’exécution mais ne s’arrêtait pas, c’était presque comme si on appuyait sur une touche après l’exécution de Pause.

Essayé des solutions suggérées ci-dessus; aucun n’a fonctionné.

Donc, juste pour référence future, voici ce que j’ai fait:

Fondamentalement, juste “pause> nul && pause> nul”; travaille à chaque fois.

 @echo off CALL :ForcePause "Press any key to resume." ECHO. ECHO Hello World! ECHO. CALL :ForcePause "Press any key to exit." EXIT REM You can remove echo if you don't want to pass custom ssortingng for pause :ForcePause echo %~1 pause > nul && pause > nul GOTO :EOF 

Je pense que je sais où est le problème, j’ai eu le même problème. Donc, si vous le faites comme ça, vous créez un nouveau fichier et mettez toutes les informations de lot à l’intérieur de celui-ci et enregistrez-le comme du texte normal. Vous devez l’enregistrer via l’éditeur de texte et à partir de là, vous devez choisir “Fichier batch ( .bat; .cmd; *. Nt)”, par exemple Notepad ++, probablement à cause de l’encodage. sera OK. GL! 🙂

En plus de la réponse de Tim, si vous souhaitez que la fenêtre s’affiche toujours, vous pouvez écrire le fichier .bat comme suit:

 call phpunit tests/sometests.php cmd /k 

J’ai le même problème. Cela se produit pour deux raisons:
Le premier est lors de l’ exécution du fichier de commandes en tant qu’administrateur .

J’ai déplacé mon fichier de commandes sur le bureau et l’essayer en tant qu’administrateur et cela fonctionne bien.
J’ai essayé de déplacer le fichier de commandes vers une racine de disque (comme C: \ D: \ etc.) et cela fonctionne correctement.
J’ai essayé de déplacer le fichier de commandes vers un répertoire contenant des espaces et cela fonctionne correctement.

La deuxième et principale raison est la suivante: il y avait des caractères spéciaux (comme @ ou & ou quelque chose comme ça) dans le répertoire du fichier de commandes .

Trouvez simplement ce caractère spécial et supprimez-le du nom du dossier. Et cela fonctionnera correctement.