サーチ…


前書き

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後に新しい行が出力されます。

文字列を表示するにはOnOff (大文字小文字を区別しない)または空の文字列を、使用して(代わりに空白の:

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.

エコー設定を設定するには、 echoonまたは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 $$

大括弧のコンテキスト( FORIFコマンドを含む)でエコーを有効にするには、 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 ###
)


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow