@echo on
および@echo off
は、バッチファイルの括弧で囲まれたif
ブロック内で実行された場合、影響を与えていないようです。ここでは簡単なデモです:バッチファイルのIFブロック内で@ECHOのON/OFFが機能しないのはなぜですか?
@echo off
echo Test #1
if 1 == 1 (
@echo on
echo Test #2
@echo off
echo Test #3
)
@echo on
echo Test #4
コマンドライン上で上記を実行しているからの出力は次のとおりです。
テスト#1
テスト#2
テスト#3
C:\ mybatchfilelocation>エコーテスト#4
テスト#4
誰でもこれと/ oを説明できますかrは回避策を提案しますか? (それはおそらく豊富goto
の使用及びラベルによって固定することができますが、可能であれば場合は括弧で囲まれたブロックを引き続き使用することを好むだろうと期待しており...)
現在の「エコーオン/オフ」状態は、行全体またはブロックのみに影響するためです。コマンドごとに個別に制御したい場合は 'echo on'を設定し、隠すコマンドの前に' @ 'を付けてください。 – aschipfl
ありがとうございますが、残念ながら 'echo on'はカッコ内のコマンドをエコーしません。 –
私は理解していません、あなたの答えに 'echo'はどちらも 'echo'edです。それを隠すために 'echo'の前に '@'を置きます。 '' 'の前に' @ 'を入れて' if'の後ろのすべてを隠す... – aschipfl