あなたは配管がかかることを覚えておく必要があります 出力 コマンドの最初の部分を削除し、それを次のコマンドに渡します。
取ることができます 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
これ以上要求しないで、コマンドはどのように機能したでしょう 君は それを期待していただろう。いくつかのディレクトリとファイルだけが含まれているディレクトリで同じコマンドを試すと、違いがわかります。