私はWindowsのバッチスクリプトを書いています。既定では、pause
コマンドはスクリプトを一時停止し、「続行するには、いずれかのキーを押してください」というメッセージを表示します。バッチスクリプトの一時停止コマンドの出力を変更します
ユーザーに自分のテキストを表示するには、このテキストを変更するにはどうすればよいですか?
ありがとうございました。 :)あなたがこれを使用することによりpause
コマンドからテキストを隠すことができ
私はWindowsのバッチスクリプトを書いています。既定では、pause
コマンドはスクリプトを一時停止し、「続行するには、いずれかのキーを押してください」というメッセージを表示します。バッチスクリプトの一時停止コマンドの出力を変更します
ユーザーに自分のテキストを表示するには、このテキストを変更するにはどうすればよいですか?
ありがとうございました。 :)あなたがこれを使用することによりpause
コマンドからテキストを隠すことができ
:
echo The batch file has paused
pause >nul
を次に、あなたはそれが一時停止したことをユーザーに伝えるために、独自のメッセージをエコー可能性
完全なスクリプトは次のようになります。
@echo off
echo Hello World!
echo The batch file has paused
pause >nul
希望します。
pause
コマンドのテキストを変更する方法はありません。しかし、choice
コマンドを見たいかもしれません。印刷するテキストを変更することができます。唯一の欠点は、受け入れ可能な文字のリストを提供する必要があることです。
'choice'コマンドをチェックアウトしました。 A)私は本当にあなたが、私が代わりに '' pause'コマンドのchoice'を使用して示唆している場合を除き、それは、私はこのケースでに何をしたい達成を支援する方法を理解していませんよ? B)私はWindows XPを実行しているので、とにかく問題はありません。また、余分なリソースキットをダウンロードしない限り、choiceコマンドはサポートされていません。ここをクリックしてください:http://www.robvanderwoude.com/choice.phpそれを使用するために余分なリソースキットをダウンロードした場合、スクリプトを使用する予定のすべてのコンピュータで同じことをしなければならないでしょうか? – Hashim
"実際に私が探していたものではありませんでしたが、回避策ではなく、一時停止コマンドの出力テキストを実際に変更する方法があるかどうかは疑問でした。 - ハシム
はい、できます!しかし、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.
あなたが今修正PAUSEメッセージを取得するためにCMD.EXEを実行することができます。
注1:この回答を読んでみんなに
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. .
注:私は、この手順のテストを行った、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 & () [ ] { }^= ; ! % ' + , ` ~
、本の
SET /P =Press enter to return to the menu . . .
GOTO :menu
利点は、カーソルがメッセージとして同じ行にとどまるということですこれは、PAUSE
コマンドと同様です。
欠点は、それが唯一の入力キーに耳を傾けていることです。
しかし、あなたは 'enter'キーに限られていますが、' pause'は全てのキーを(ほとんど)必要とします。 – Stephan
はここでここで別のトリック
Pause. >nul | echo. Press something to continue
だAaciniのソリューションよりもそれは少し短い(1少ない 'NUL') だワンライナー
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...)
BV
実際には、私はあなたが複数のことを行うことができ、後続の改行がないことを認識しました。Pause> nul | (あなたのすべての基地とエコーは私たちに属しており、/ p =死ぬ鍵を押す...) –
あなたはこのようにそれを行うことができます!
@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
は本当に私が探していたものを、私は実際に一時停止コマンドの出力テキストではなく、それにだけ回避方法を変更する方法があったかどうかを疑問に思ったわけではありません。 – Hashim
いいえ、AFAIKはそのテキストを変更する方法がありません。 –
KK、私が聞くと思いますまさに私が恐れて。とにかく助けてくれてありがとう、仲間。 :) – Hashim