あなたは配管がかかることを覚えておく必要があります 出力 コマンドの最初の部分を削除し、それを次のコマンドに渡します。
取ることができます fileX.cmd | cmd そしてそれを分解する:
filex.cmd = @echo dir
コマンドラインから@echo dirと入力すると、出力は次のようになります。 dir。 Echoは単にechoコマンドの後に来るものを出力します。出力は実行されず、表示されるだけです。
コマンドプロンプトからfilex.cmdと入力してEnterキーを押すと、出力が表示されます。 dir。これは、コマンドがbatch / cmdファイルに入っているという点で、前のステートメントと同じです。
追加すると | cmd結果が違うと、ディレクトリのリストが表示されます。どうして? filex.cmdの出力は dir そして私達は通り過ぎている dir その出力を受け取って実行するコマンドプロンプトに、ディレクトリの一覧を表示します。
では、なぜ2番目のコマンドが同じことをしないのでしょうか。その理由は、あなたは type コマンド。 Type テキストを画面に表示します。あなたのディレクトリリストが短いなら、それはうまくいったでしょう。ただし、ディレクトリリストは画面外にスクロールするため、 type コマンドは出力を一時停止し、必要かどうかを尋ねます more?。その質問、 more? これが出力となり、コマンドプロンプトに渡されます。
ディレクトリリストがもっと短い場合は、 type これ以上要求しないで、コマンドはどのように機能したでしょう 君は それを期待していただろう。いくつかのディレクトリとファイルだけが含まれているディレクトリで同じコマンドを試すと、違いがわかります。