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?
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
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.
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
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 ! :)
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
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.