batch-file
エコー
サーチ…
前書き
echo
を使用して出力を制御して出力することができます。
構文
- エコー[ON |オフ]
- エコーメッセージ
- ECHO(メッセージ
- エコー(
パラメーター
パラメータ | 詳細 |
---|---|
ON |オフ | ON またはOFF いずれかを指定できます(大文字と小文字を区別しません) |
メッセージ | 任意の文字列( ( )を使用せずに使用するとON またはOFF を除く) |
備考
-
echo.
空文字列も表示されます。しかし、これはecho(
よりも遅いですecho(
echo.
は "echo"という名前のファイルを検索します)。このファイルが存在しない場合にのみ、コマンドは動作しますが、このチェックにより遅くなります。 -
echo:
同じように動作しますecho(
、しない限り、message
ファイルパスのように見える、例えばecho:foo\..\test.bat
この場合、インタプリタが表示されます。echo:foo
フォルダ名、ストリップとしてecho:foo\..\
(ディレクトリecho:foo
を入力し直してからもう一度やり直しているようにtest.bat
ので)、test.bat
を実行しtest.bat
。これは目的の動作ではありません。
メッセージの表示
"Some Text"を表示するには、次のコマンドを使用します。
echo Some Text
これにより、文字列「 Some Text
後に新しい行が出力されます。
文字列を表示するにはOn
とOff
(大文字小文字を区別しない)または空の文字列を、使用して(
代わりに空白の:
echo(ON
echo(
echo(off
これは出力されます:
ON off
echo.
を使うのも一般的echo.
空白行を出力するが、なぜこれが最善の考えではないのかを見てください。
CR / LFを含まずにテキストを表示するには、次のコマンドを使用します。
<nul set/p=Some Text
このコマンドは、プロンプトに続いて空の文字列と呼ばれる変数をユーザー入力に設定しようとします。 nul
ファイルは<nul
でコマンドにリダイレクトされるので、コマンドはそれを読み込もうとするとすぐに放棄され、プロンプト文字列だけが残されます。ユーザーが決して改行を入力しなかったので、改行はありません。
エコー設定
エコー設定は、コマンドエコーがオンかオフかを決定します。これはコマンドのエコーをオンにするとサンプルプログラムのようになります(デフォルト)。
C:\Windows\System32>echo Hello, World!
Hello, World!
C:\Windows\System32>where explorer
C:\Windows\System32\explorer.exe
C:\Windows\System32>exit
これはエコーをオフにしたときのようです:
Hello, World!
C:\Windows\System32\explorer.exe
取得と設定
(ディスプレイ)のエコー設定を取得するには、使用echo
パラメータを指定せずに:
> echo
ECHO is on.
エコー設定を設定するには、 echo
をon
またはoff
で使用off
ます。
> echo off
> echo
ECHO is off.
> echo on
> echo
ECHO is on.
これらの例では、プロンプトは>
表されています。エコー設定を変更すると、プロンプトが表示され消えますが、これは不明な例を示しています。
コマンドの前に@
文字を置くことで、エコーがオンであってもコマンドがエコーされないようにすることができます。
エコーはすべてを文字通り出力します
引用符はそのまま出力されます:
echo "Some Text"
"Some Text"
コメントトークンは無視されます:
echo Hello World REM this is not a comment because it is being echoed!
Hello World REM this is not a comment because it is being echoed!
しかし、 echo
は引き続き変数を出力します - 変数使用法を参照してください - そして特殊文字はまだ有効です:
echo hello && echo world
hello world
出力をファイルにエコーする
echoコマンドでファイルを作成する方法:
echo. > example.bat (creates an empty file called "example.bat")
echo message > example.bat (creates example.bat containing "message")
echo message >> example.bat (adds "message" to a new line in example.bat)
(echo message) >> example.bat (same as above, just another way to write it)
パスへの出力
あなたがこれを実行するときに実行するかもしれない少し問題:
echo Hello how are you? > C:\Users\Ben Tearzz\Desktop\example.bat
(This will NOT make a file on the Desktop, and might show an error message)
しかし、それではどうしたらいいのですか?それは実際には非常に簡単です...名前にスペースが含まれているパスやファイル名を入力するときは、 "引用符"
echo Hello how are you? > "C:\Users\Ben Tearzz\Desktop\example.bat"
(This will make a file on MY Desktop)
しかし、新しいファイルを出力するファイルを作成したい場合はどうすればよいでしょうか?
echo message > file1.bat > example.bat
(This is NOT going to output:
"message > file1.bat" to example.bat
それでは、どうすればいいのですか?
echo message ^> file1.bat > example.bat
(This will output:
"message > file1.bat" to example.bat
バッチ内の他のものにも同じです
変数とステートメントが何であるかを学習していない場合は、次のことを理解していない可能性があります 。 if文についてはこちらをクリックしてください
変数:
set example="text"
echo %example% > file.bat
(This will output "text" to file.bat)
"text"を出力するのではなく単に%example%を出力したい場合、次のように記述します:
echo ^%example^% > file.bat
(This will output "%example%" to file.bat)
else文:
else = ||
if ^%example^%=="Hello" echo True || echo False > file.bat
(This will output:
if %example%=="Hello" echo True
私たちが書いた行全体を出力する:
if ^%example^%=="Hello" echo True ^|^| echo False > file.bat
This will output:
if %example%=="Hello" echo True || echo False
変数が "Hello"に等しい場合は "True"、そうでなければ "False"と表示されます
@エコーオフ
@echo off
は、出力のみが表示されるように、バッチファイルのプロンプトと内容が表示されないようにします。 @
は、 echo off
コマンドの出力も非表示にします。
括弧内のエコーを有効にする
次の例では、 echo on
は大括弧の最後に達した後に有効になります。
@echo off
(
echo on
echo ##
)
echo $$
大括弧のコンテキスト( FOR
とIF
コマンドを含む)でエコーを有効にするには、 FOR / fマクロを使用できます:
@echo off
setlocal
:: echo on macro should followed by the command you want to execute with echo turned on
set "echo_on=echo on&for %%. in (.) do"
(
%echo_on% echo ###
)