Ответ 1
Выполняется ли последняя команда до паузы? Разделите свой script - по крайней мере последние несколько команд?
В качестве альтернативы, поскольку вы, похоже, используете Windows7, попробуйте команду Timeout и посмотрите, работает ли она.
Я создаю простой командный файл, чтобы помочь в нескольких вещах, и у меня есть некоторые инструкции, которые он распечатывает, а также, что я хочу, чтобы пользователь видел перед выходом. В настоящее время окно закрывается очень быстро. Поэтому я добавил PAUSE
в конце файла, но он не хочет работать.
Я просмотрел другие вопросы по SO и проверил, чтобы концы строк были CRLF
и у меня есть CRLF
в конце файла.
Любые предложения?
Выполняется ли последняя команда до паузы? Разделите свой script - по крайней мере последние несколько команд?
В качестве альтернативы, поскольку вы, похоже, используете Windows7, попробуйте команду Timeout и посмотрите, работает ли она.
Если последняя команда не работает, пауза не будет работать.
Вы можете исправить это, поставив "вызов" за команду, которую вы выполняете (любая команда перед паузой), тогда пауза будет работать.
Так, например, у меня был пакетный файл phpunit, который выглядел так:
phpunit tests/sometests.php
pause
Когда phpunit не удалось, он просто вышел без паузы. Изменение его на это заставило его сделать паузу правильно:
call phpunit tests/sometests.php
pause
Я думаю, я знаю, где проблема, у меня была та же проблема. Поэтому, если вы делаете это так, вы создаете новый файл и помещаете в него всю информацию о пакете и сохраняете его как обычный текст, и после этого просто переименуйте расширение, которое не будет работать:). Вы должны сохранить его через текстовый редактор, и оттуда вы должны выбрать "Пакетный файл (.bat;.cmd; *. Nt)", например, Notepad ++, вероятно, из-за кодирования, так что сделайте это так, и я thnk его будет в порядке. GL!:)
У меня были проблемы даже с эхом... предполагая, что это было вызвано длинным пакетным файлом... Пауза выполнялась, но она не приостанавливалась, это было почти так, как будто нажатие клавиши после выполнения Pause.
Пробовал предлагаемые решения выше; никто не работал.
Итак, просто для справки в будущем, вот что я сделал:
В принципе просто "пауза" > nul & pause > nul "; работает каждый раз.
@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
Просто добавив ответ Тима, если вы хотите, чтобы окно всегда отображалось, вы можете записать файл .bat, например:
call phpunit tests/sometests.php
cmd /k