回答:
それは私が今まで見たことのない興味深いソリューションです。説明しよう:
echo %path%。これにより、セミコロン(;)で区切られた1行にすべてのディレクトリが出力されます%path:a=b%これを使用して、すべてのa文字をbecho. 改行を印刷するために使用されます&コマンドを分離するために使用されます。たとえば、echo line1&echo line22行を出力します;何もして、その後、改行を印刷します」。私はこれに関する文書を見つけることができないので、それは単なる私の解釈です。率直に言って、私はそれが可能であることすら知りませんでしたが、そこに行きます。更新このステップの私の解釈は外れているようで、wizzwizz4でよりよく説明されています。echo pathか?%%は変数に使用されますか?
set greeting=Hello、その後echo %greeting%。紛らわしいことに、PATHコマンドと変数の両方であるため、コマンドを入力するpathかecho %path%、同じ結果になります。
$PATHします。
echo.「改行を印刷するコマンド」ではありません。これは、Windows NT用のMicrosoftのコマンドインタープリターですcmd。およびは、echo.単にパス要素を印刷するコマンドであり、パス要素が空の場合、他の機能に切り替わらないようにしますecho。最初もecho本当にする必要がありecho.ます。
これは、コマンドライン変数置換を使用しています。%path:;=&echo.%は、「を意味します%path%が、すべて;のを&echo.」に置き換えます これは、次のことを意味しset path=C:\Windows\System32;C:\Windows\;;C:\Python37;ます。
echo %path:;=&echo.%
になる:
echo C:\Windows\System32&echo.C:\Windows\&echo.&echo.C:\Python37&echo.
以来、&コマンドの区切りであり、これは、と等価です。
echo C:\Windows\System32
echo.C:\Windows\
echo.
echo.C:\Python37
echo.
DOS Batchの癖のため、その後に何もない場合echo.をecho 除いて同一です。その場合、ECHOオンかオフかを知らせるのではなく、単に何も出力しません。これにより、出力が作成されます。
C:\Users\wizzwizz4> echo %path:;&echo.%
C:\Windows\System32
C:\Windows\
C:\Python37
C:\Users\wizzwizz4>
本当に、echo.%path:;=&echo.%で%PATH%始まる場合を考慮する必要がありますが、;とにかくこのコマンドはかなり賢いです。
詳細なデータを取得するには、実際にの echo(代わりに使用する必要がありecho.ます。これはecho.、というファイルを取得したときに問題が発生する可能性があるためです。また、実行するたびにechoディスク(%CD%およびすべてのディスクも%PATH%)をチェックする必要があるため、時間がかかります。(;それだけで私はそれを自分でチェックすることはできませんので、私は、Windowsのコピーを持っていない%CD%、あるいはどこか%PATH%の存在というechoファイルが影響を与えますecho.、そして、それは何でしょうか?)
echo)、私は本当に覚えていません。;-(
echo.何年も前に人々が最もよく使っていたものです。それは多くの本の1つです。効率は問題ではありません。さまざまなファイルが存在する場合の奇抜な動作は次のとおりです。cmdOS / 2で16ビットの32ビットの置換を書いたとき、これらの句読点でコマンド名を壊し、この非常に不規則な解析動作は、意図的に複製しなかったものの1つであり、違いのリスト。echodot代わりに外部コマンドを作成しましたecho.。必要に応じてエイリアスを作成できます。
echo(が唯一の安全なバージョンになります。
echo.ない可能性があります。