Подтвердить что ты не робот

Изменить текст команды паузы по умолчанию в пакетном режиме script

Я пишу пакет Windows script. По умолчанию команда pause приостанавливает script и отображает текст "Нажмите любую клавишу, чтобы продолжить..."

Как изменить этот текст для отображения моего собственного текста пользователю?

Спасибо.:)

4b9b3361

Ответ 1

Скрыть текст из команды pause можно с помощью этого:

pause >nul

Затем вы можете повторить свое собственное сообщение, чтобы сообщить пользователю, что он приостановил:

echo The batch file has paused

Таким образом, полный script может выглядеть так:

@echo off
echo Hello World!
echo The batch file has paused
pause >nul

Надеюсь, что это поможет:)

Ответ 2

Здесь однострочный

  pause>nul|set/p =any key to exit ...

Он немного короче (один меньше "нуль" ) чем решение Аачини:

  set/p<nul =any key to exit ...&pause>nul

и, сначала с "паузой", я думаю, что это немного ясно, что это за намерение.

С помощью

  cursor stays on the same line  
  ANY key works, not just 'enter'  

Однако они не столь хороши, как гипотетические

  pause/t any key to exit ...

Трудно поверить, что "пауза" выжила 35 лет без этой способности; -)

Решения с "эхом" имеют, возможно, нежелательные завершающая новая линия,
но предоставляют несколько строк текста:

  Pause>nul|(echo  All your bases &echo  are belong to us &echo Press any key to die...)

БВ

Ответ 3

"Не совсем то, что я искал, мне было интересно, есть ли способ изменить текст вывода команды Pause, а не только обходной путь". - Хашим

Да, вы можете! Но вы должны знать, что PAUSE является внутренней командой CMD.EXE, поэтому, чтобы изменить сообщение, которое отображается PAUSE, вы должны изменить файл CMD.EXE. Для этого вы должны использовать редактор, который может изменять двоичные файлы. Я использовал XVI32 через следующие шаги:

1- Copy CMD.EXE file to a new folder created for this purpose: COPY %COMSPEC%
2- Edit the copy of CMD.EXE with XVI32.EXE program:
   2.1- Locate the message you want. Messages are stored in 16-bits elements with the high byte equal zero. To locate a message:
        2.1.1- In Search> Find> Text string> enter the message you want.
        2.1.2- Convert Text -> Hex
        2.1.3- Insert a zero after each letter-value
        2.1.4- Press Ok
   2.2- Modify the message for the new one. Modify existent letters only and keep zeros in place. Note that you can NOT extend any message.
   2.3- End the edition and save the modified file.

Теперь вы можете запустить CMD.EXE, чтобы получить измененное сообщение PAUSE. Я проверил эту процедуру:

C:\DOCUME~1\Antonio\MYDOCU~1\My Webs\XVI32 Hex File Editor
>pause
Press any key to continue . . .

C:\DOCUME~1\Antonio\MYDOCU~1\My Webs\XVI32 Hex File Editor
>cmd
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\DOCUME~1\Antonio\MYDOCU~1\My Webs\XVI32 Hex File Editor
>pause
Oprime una tecla para seguir. .

Примечания для всех, кто читает этот ответ:

ПРИМЕЧАНИЕ 1. Пожалуйста, не публикуйте этот комментарий, говоря, что изменение файла CMD.EXE НЕ ДОЛЖНО быть сделано! Я думаю так же. Я только что опубликовал этот ответ, чтобы ОП понял, что он действительно просил...

ПРИМЕЧАНИЕ 2: просмотр файла CMD.EXE с помощью текстового редактора, такого как Блокнот, очень интересен. Вы можете увидеть все внутренние команды, интересные детали (например, = ExitCode и = ExitCodeAscii), все сообщения об ошибках и т.д. Например, это внутренние команды:

C O L O R   T I T L E   C H D I R   C L S   C M D E X T V E R S I O N
D E F I N E D   C O P Y     P A T H     P R O M P T     P U S H D   P O P D
A S S O C   F T Y P E   D A T E     D E L   D I R   E C H O     E N D L O C A L
E R A S E   E R R O R L E V E L     E X I T     E X I S T   B R E A K   F O R
G O T O     I F         K E Y S     M K D I R   M D     N O T   P A U S E   R D
R E M       M O V E     R E N A M E     R E N   R M D I R   S E T   S E T L O C A L
S H I F T   S T A R T   T I M E     T Y P E     V E R I F Y   V E R   V O L   = , ; + / [ ]      "     : . \ 


                                         P A T H E X T   P A T H     P R O M P T

                                                           F O R / ?   I F / ?     R E M / ?



            % s               % s
       % s 

         / A     / P     : E O F         
       f d p n x s a t z   D O
/ L     / D     / F     / R         I N     E L S E     ( % s )   % s       % s   % s % s
     % c % c     % s   % s                 & ( ) [ ] { } ^ = ; ! % ' + , ` ~               

Ответ 4

Невозможно изменить текст команды pause. Однако вы можете посмотреть команду choice. Вы можете изменить текст, который он печатает. Единственным недостатком является то, что вам необходимо предоставить список допустимых символов.

Ответ 5

Другим грязным решением было бы что-то вроде этого,

SET /P =Press enter to return to the menu . . . 
GOTO :menu

Преимущество этого заключается в том, что курсор остается на той же строке, что и сообщение, как и с помощью команды PAUSE.

Недостатком является то, что он только слушает клавишу ввода.

Ответ 6

Вот еще один трюк

Pause. >nul | echo.  Press something to continue

Ответ 7

Вы можете сделать это вот так!

@echo off
echo Hello World!
echo:
echo Press 1 to continue
set /p letter=

if %letter% == 1 goto a ;or instead of goto you could write start and the file or website you want to start
pause >nul

:a
cls 
echo BYE NOW!
pause >nul