3

それで、今日、次のコマンドで改行を設定できることを知りました。

 set nl=^&echo.

例えば:

set nl=^&echo.
echo Hello%nl%world

収量

Hello
world

しかし、なぜこれが機能するのでしょうか。^& の意味は何ですか?

4

1 に答える 1

9

コードを .bat ファイル内に配置し、エコーをオフに設定しない (エコーをオンのままにする) と、コマンドがどのように展開され実行されるかがわかります。

バッチ

set nl=^&echo.
echo One%nl%Two%nl%Three

出力

C:\>set nl=&echo.

C:\>echo One  & echo.Two & echo.Three
One
Two
Three

は特殊文字を^エスケープして、変数&内に設定できるリテラル文字にします。nl次に、nl変数が展開されると、&echo.が挿入されます。

あとは&echo.部品を分解するだけです。アンパサンド&は、新しいコマンドが同じ行で始まることを意味します。同じ行の新しいコマンドはecho.、新しい行を出力する です。

于 2013-06-18T20:53:11.800 に答える