2017-06-02 9 views
2

をプリントしているこのcmdライナーの意味%PATH%変数をかなりプリントするhereのこの1ライナーと全く混同されています。%PATH%

ECHO.%PATH:;= & ECHO.%

あなたはこのワンライナーを分割し、各部分が何を意味するのか説明してもらえますか?例えば

、セミコロンで%PATH%分割がどのように

  • PATH変数は通常%PATH%と呼ばれます。ここで使用される構文は何ですか?
  • ECHO.%:;=の意味は?
  • "各行にがあります。それをエコーアウトします"ロジック?

構文を説明する任意のリソースを指し示すことができれば幸いです。

答えて

4

最初のチェックこれは:https://ss64.com/nt/syntax-replace.html

セミコロンは変数に部分文字列がreplaced.Firstが古い部分文字列は、その後、等号は、その後、新しいものであることを意味します。

この場合、すべてのセミコロンは、新しい行を出力するコマンドECHO.に置き換えられます。 アンパサンドは、1行でmoreコマンドを実行するために使用されます。

遅延拡張がないので、変数を展開するとechoコマンドも実行されます。

2

例(アンダースコアはスペースを示す)

セイ%PATH%%PATH:;=_&_ECHO.%_&_ECHO.;を置き換えa;b;c

です(@npocmakaによって答えを参照)

これはa_&_ECHO.b_&_ECHO.c

を与えます

%PATH%は開始しないためセミコロンで最初のディレクトリaが印刷されていることを確認するには、上記の式の前にECHO.を追加する必要があります。これはECHO.a_&_ECHO.b_&_ECHO.c


ECHO.なぜドットに展開

ECHO.%PATH:;=_&_ECHO.%

を与えますか?我々はECHO_を使用している場合

セイ%PATH%は、私たちがECHO.を使用している場合は、我々は我々がthis discussionから

a 
b 

c 

なります

a 
b 
ECHO is on. 
c 

を取得します

a;b;;c

です

ECHO.は、空行を出力するためにECHO文を取得するために使用されます。 では、ECHOはコマンドテキストの後に空白または単に白の スペースを発行し、現在の 'echo'ステータスを出力します。 はONまたはOFFです。