Просто найдите этот специальный символ и удалите его из имени папки. И это будет работать правильно.

даю простой командный файл, чтобы помочь в нескольких вещах, и у меня есть некоторые инструкции, которые он распечатывает, и которые я хочу, чтобы пользователь увидел перед выходом. В настоящее время окно закрывается очень быстро. Итак, я добавилPAUSE в конце файла, но он не хочет работать.

Я посмотрел на другие вопросы о SO и проверил, чтобы окончание строкCRLF и что у меня естьCRLF в конце файла.

Какие-либо предложения?

 Samaursa12 янв. 2011 г., 18:03
Я, честно говоря, не знаю почему, но сегодня он начал работать. Мои извинения за это, но я понятия не имею, что случилось. Я даже не изменил сценарий!
 Cody Gray♦12 янв. 2011 г., 07:49
Вы делаете что-то еще не так. Я только попробовал это снова, и это прекрасно работает для меня.

Ответы на вопрос(6)

если вы хотите, чтобы окно всегда отображалось, вы можете написать .bat файл как:

call phpunit tests/sometests.php
cmd /k
 Justin06 июл. 2017 г., 03:41
@ Марсель, ты понизил мой ответ только потому, что я оставляю его как ответ вместо комментария?
 Marcel05 июл. 2017 г., 10:05
Пожалуйста, оставьте это как комментарий к ответу Тима. Это не полный ответ сам по себе.
 Justin19 дек. 2017 г., 03:08
@ Marce ok Я добавил комментарий к исходному сообщению, но оставлю здесь и свой ответ, формат кода в комментарии неясен.
 Marcel06 июл. 2017 г., 08:16
Да. Это хорошо, но это действительно должен быть комментарий. Это коротко, и это определенно очень тесно связано с ответом.
Решение Вопроса

Вы можете исправить это, поместив «call» позади команды, которую вы выполняете (какая бы команда не находилась перед паузой), тогда пауза сработает.

Например, у меня был пакетный файл phpunit, который выглядел так:

phpunit tests/sometests.php
pause

Когда phpunit не удалось, он просто вышел без остановки. Изменение этого заставило это сделать паузу правильно:

call phpunit tests/sometests.php
pause
 dann.dev26 апр. 2012 г., 00:35
Спасибо за это, работал для меня тоже. С другой стороны, кажется, что это не обязательно должно завершиться сбоем, если в предыдущей команде есть какой-либо код завершения (даже при успешном выполнении), то она, похоже, закрывает окно.
 JSmyth19 июл. 2013 г., 14:43
CALL работал тоже хорошо.
 Justin19 июл. 2017 г., 03:36
В дополнение к ответу Тима, если вы хотите, чтобы окно всегда отображалось, вы можете написать файл .bat, например: call phpunit tests / sometests.php cmd / k
 Ryan17 янв. 2017 г., 16:35
Добавлениеcall не имел никакого эффекта для меня в командной строке Windows 10, работающей от имени администратора. Я не знаю почемуpause Команда в моих пакетных файлах (открытых AutoHotKey) сегодня внезапно перестала работать. Я не знаю, что изменилось. Они работали неделями.


Первый, когдазапуск командного файла от имени администратора.

Я переместил свой командный файл на рабочий стол и попробовал его в качестве администратора, и он отлично работает.
Я попытался переместить командный файл в любой корень диска (например, C: \ D: \ и т. Д.), И он работает правильно.
Я попытался переместить командный файл в любой каталог с пробелами, и он работает правильно.

Вторая и главная причина:В каталоге командного файла было несколько специальных символов (например, @ или & или что-то в этом роде).

Просто найдите этот специальный символ и удалите его из имени папки. И это будет работать правильно.

что это было вызвано длинным пакетным файлом ... Пауза выполнялась, но не делала паузу, это было почти так, как будто она нажимала клавишу после выполнения Паузы.

Попробовал предложенные решения выше; никто не работал.

Так что для дальнейшего использования, вот что я сделал:

В основном просто "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
 Zunair16 сент. 2017 г., 15:34
Конечно, в идеальном мире, но, как я уже говорил, это не значит, что это решение.
 T.S.13 сент. 2017 г., 22:38
pause > nul определенно работает, просто не дает сообщениеpress any key...

елиться своим сценарием - хотя бы последние несколько команд?

В качестве альтернативы, поскольку вы, похоже, используете Windows7, попробуйте команду Timeout и посмотрите, работает ли она.

 Joey13 янв. 2011 г., 17:32
Ну еслиpause является позвонил, будет работать. С помощьюtimeout вместо этого это не изменится (за исключением того, что он вызывает отдельную программу вместо встроенной оболочки). Я думаю, что естьgoto :eof или жеexit /b где-то доpause (не редкость в пакетных файлах с подпрограммами - где вы не можете просто добавить команды в конец, чтобы они выполнялись).
 Juan José Melero Gómez21 апр. 2016 г., 10:45
Что вы делаете, если последняя команда выдает исключение, как в моем случае?

я знаю, где проблема, у меня была такая же проблема. Поэтому, если вы делаете это так, вы создаете новый файл, помещаете в него всю информацию о пакете и сохраняете его как обычный текст, а после этого просто переименовываете расширение, оно не будет работать :). Вы должны сохранить его с помощью текстового редактора и оттуда вы должны выбрать «Пакетный файл (.летучая мышь;.cmd; *. nt) "например Notepad ++, вероятно, из-за кодировки, поэтому сделайте это так, и я думаю, что все будет в порядке. GL! :)

Ваш ответ на вопрос