Функция PAUSE командной строки не работает

2668
user232864

У меня возникла проблема с командой пакетного файла - когда я запускаю программу, в конце пакетного файла появляется команда «ПАУЗА», однако командное окно все равно автоматически закрывается мгновенно, слишком быстро, чтобы я мог увидеть Результаты. Есть ли другой способ предотвратить закрытие командного окна или как-то получить результаты? то есть, может ли печатная версия быть отправлена, вставлена ​​куда-нибудь?

Предыстория - я знаю, как сидеть на корточках о командной строке, поэтому, пожалуйста, если вы можете, любой ответ, пожалуйста, не доходите до объяснений уровня новичка. В конечном итоге я пытаюсь определить версии файла MS Project и точно использовал / следовал инструкциям на этом веб-сайте, однако результаты не отображаются для меня - командное окно просто мгновенно исчезает:

Веб-сайт Microsoft, который я использовал для инструкций: простой метод определения версии файла mpp (файл плана MS Project)

Текст / команды в пакетном файле:

@ECHO OFF  REM Version.bat  ECHO Filename: %1  ECHO.  ECHO -- CHECK FOR PROJECT VERSION --  strings %1 | findstr "[0-9],.,....,...." 2>NUL  ECHO Check the following list for the first one or two digits of the string above (xx,.,....,....)  ECHO List of xx (Product Name): 8 (98), 9 (2000), 10 (2002), 11 (2003), 12 (2007), 14 (2010)  ECHO.   ECHO -- CHECK FOR MPP FILE VERSION --  strings %1 | findstr ".MPP" 2>NUL  ECHO Check the following list for the digit(s) at the end of the string above (...MPPxx)  ECHO List of xx (Product Name): 8 (98), 9 (2000/2002/2003), 12 (2007), 14 (2010)  ECHO.  PAUSE 
4
Какую ОС вы используете? Я думаю, это аромат окон, но какой? terdon 10 лет назад 0
Я использую Windows XP - версия 2002, пакет обновления 3 user232864 10 лет назад 1
Разместите содержимое вашего пакетного файла Travis 10 лет назад 0
Вот содержимое пакетного файла, как описано в ссылке (придется сделать это в 2 комментариях, так как оно превышает максимальное количество символов): @ECHO OFF REM Version.bat ECHO Имя файла:% 1 ECHO. ECHO - ПРОВЕРИТЬ ВЕРСИЮ ПРОЕКТА - строки% 1 | findstr "[0-9],., ...., ...." 2> NUL ECHO Проверьте в следующем списке первые одну или две цифры строки выше (xx,., ....,. ...) ECHO Список хх (Название продукта): 8 (98), 9 (2000), 10 (2002), 11 user232864 10 лет назад 0
(2003), 12 (2007), 14 (2010) ECHO. ECHO - ПРОВЕРИТЬ ВЕРСИЮ ФАЙЛА MPP - strings% 1 | findstr ".MPP" 2> NUL ECHO Проверьте следующий список на наличие цифры (цифр) в конце приведенной выше строки (... MPPxx) ECHO Список xx (Название продукта): 8 (98), 9 (2000 / 2002/2003), 12 (2007), 14 (2010) ECHO. ПАУЗА user232864 10 лет назад 0
Я задам «глупый вопрос» - вы уверены, что ваш пакетный файл вообще запущен? Попробуйте добавить командную строку, такую ​​как `COPY NUL C: \ TEMP \ TESTFILE` (с указанием существующего каталога, для которого у вас есть разрешение на запись, и файла, который не существует) в ваш сценарий (скажем, прямо перед` PAUSE `), запустите его и проверьте, был ли файл создан. Если это так, игнорируйте этот комментарий и сосредоточьтесь на других ответах. Если файл *** не был создан ***, попробуйте переместить команду `COPY` в начало скрипта. Если он все еще не создает файл: плохие новости; ты даже не запускаешь свой командный файл. Scott 10 лет назад 0
Скотт - Спасибо за информацию выше - все, что нужно знать. Оказывается, у меня не была установлена ​​программа "strings", которая была необходима. Спасибо за помощь user232864 10 лет назад 1

3 ответа на вопрос

1
STTR

Wait

sec:

PING 127.0.0.1 -n <sec> >NUL 

Wait 10 sec:

PING 127.0.0.1 -n 10 >NUL 

Wait 10 sec:

powershell measure-command ^| select TotalSeconds ^| Ft -Au 

Wait 1/4 sec or 250 milliseconds:

powershell measure-command ^| select TotalMilliseconds ^| Ft -Au 

Pause

powershell:

powershell $host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown') 

var2:

powershell $host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown') >NUL 

var3:

powershell cmd /c pause ^| out-null 

var4:

powershell [Console]::ReadKey()>NUL 

var5:

powershell sleep 

Pause command, batch/cmd:

cmd /c pause 
К сожалению, я получаю тот же результат - все еще исчезает мгновенно user232864 10 лет назад 2
@ user232864 проверить команду powershell и что означает `PING 127.0.0.1 -n 10` в cmd? На вашем Windows XP SP3? STTR 10 лет назад 0
Спасибо, попробовал PowerShell в конце командного файла, тот же результат - командное окно открывается на секунду, а затем исчезает, как и раньше. Не уверен, что понимаю вопрос "На вашей Windows XP SP3?" user232864 10 лет назад 2
@ user232864 От твоего вопроса я понял, что ты нужена задержка, а не пауза. Сейчас добавлю) STTR 10 лет назад 0
Спасибо за информацию выше - все приятно знать. Оказывается, у меня не была установлена ​​программа "strings", которая была необходима. Спасибо за помощь. user232864 10 лет назад 2
1
James P

I suspect the file has an error. Try calling the batch file from an existing command window to see the message.

Most likely the problem is that the script is calling an external program called "strings" and according to the document you linked to this can be found here. In order for the batch file to be able to find it you should install it in the directory you are running it in, otherwise you will need to modify the PATH system environment variable or put it in a system directory.

Спасибо - это сработало. Я не могу поверить, что пропустил программу «Струны». После загрузки он работал отлично. Спасибо! user232864 10 лет назад 0
0
kStarbe

Если предыдущая команда является командным файлом, остальная часть вашего файла не выполняется. попробуйте позвонить перед предыдущими командами /

Вы повторяете другой ответ yass 6 лет назад 1

Похожие вопросы