La commande de fichier discontinu PAUSE ne fonctionne pas

je crée un simple fichier batch pour aider dans quelques choses, et j'ai quelques instructions qu'il imprime aussi bien que je veux que l'utilisateur de voir avant la sortie. Actuellement, la fenêtre se ferme très rapidement. J'ai donc ajouté PAUSE à la fin du fichier, mais il ne veut pas travailler.

j'ai regardé d'autres questions sur la SORTE et ont vérifié pour s'assurer que les fins de ligne sont CRLF et que j'ai CRLF à la fin du fichier.

des suggestions?

45
demandé sur Samaursa 2011-01-12 09:46:32

6 réponses

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

vous pouvez le corriger en mettant" call " derrière la commande que vous exécutez (quelle que soit la commande avant la pause) puis la pause fonctionnera.

ainsi, par exemple, j'ai eu un fichier de lot phpunit qui ressemblait à ceci:

phpunit tests/sometests.php
pause

quand phpunit a échoué, il est sorti sans s'arrêter. Le changer en ceci le fit s'arrêter correctement:

call phpunit tests/sometests.php
pause
110
répondu Tim 2012-03-07 05:24:00

la dernière commande avant pause s'exécute-t-elle avec succès? Vous pouvez partager votre script - au moins les dernières commandes?

alternativement, puisque vous semblez utiliser Windows7, essayez la commande Timeout et voyez si cela fonctionne.

3
répondu Vivek Madani 2011-01-12 06:57:25

j'avais des problèmes même sur echo... en supposant qu'il a été causé par un long fichier batch... La Pause s'exécutait, mais elle ne s'arrêtait pas, c'était presque comme appuyer sur une touche après L'exécution de la Pause.

a essayé les solutions suggérées ci-dessus; aucune n'a fonctionné.

donc juste pour référence future, voici ce que j'ai fait:

simplement "pause > nul && pause > nul"; fonctionne à 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 string for pause
:ForcePause
echo %~1
pause > nul && pause > nul
GOTO :EOF
2
répondu Zunair 2015-01-30 16:43:30

je pense que je sais où est le problème, j'ai eu le même problème. Donc, si vous le faites comme ceci, vous créez un nouveau fichier et mettez toutes les informations de lot à l'intérieur et enregistrez-le comme texte normal et après cela, il suffit de renommer l'extension, il ne fonctionnera pas :). Vous devez le sauvegarder via l'éditeur de texte et de là vous devez choisir " Batch file ( ).chauve-souris; .cmd;*.nt)" par exemple Notepad++, c'est probablement à cause de l'encodage donc faire comme ceci et je thnk, il sera ok. GL ! :)

1
répondu Atanas Kovachev 2012-04-25 23:34:21

juste en plus de la réponse de Tim, si vous voulez que la fenêtre s'affiche toujours, vous pouvez écrire le .fichier bat comme:

call phpunit tests/sometests.php
cmd /k
0
répondu Justin 2016-01-27 04:33:02

j'ai le même problème. Cela se produit pour deux raisons:

La première est quand exécute le fichier de lot comme administrateur .

j'ai déplacé mon fichier batch sur le bureau et l'essayer en tant qu'administrateur et il fonctionne très bien.

J'ai essayé de déplacer le fichier batch vers n'importe quelle racine de disque (comme C:\ D:\ etc.) et elle fonctionne correctement.

J'ai essayé de déplacer le fichier batch répertoire avec des espaces et qu'il fonctionne correctement.

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

il suffit de trouver ce caractère spécial et de le supprimer du nom du dossier. Et qu'il fonctionne correctement.

0
répondu Mohammad Huda Knefaty 2018-05-24 02:29:26