子プロセスの出力をリダイレクトするための CMD ファイル

子プロセスの出力をリダイレクトするための CMD ファイル

call %1 > %2コマンド実行の出力リダイレクト用に、コマンド (いくつかの引数を含むファイル名) とファイルへのパスの 2 つのパラメータを受け取るバッチ ファイルが必要です。start %1 > %2ファイル 'q.cmd' で、 および を呼び出したりq "echo test" "log.txt"、を呼び出したりq 'echo test' 'log.txt'して%1、 などcall %1のいくつかのバリエーションを試しましたが、何も機能しません。 また、 を前q "echo test > log.txt"に使用して試しました。 ほとんどの場合、「 'echo is not aware as an internal or external commad...」またはこれに似た内容が出力され、空の 123.txt が作成されたり、いくつかのサービス行が出力されたりすることがありますが、必要な「test」は出力されません。 どうすればこの問題を解決できますか?^>

答え1

q "echo test" "log.txt"2 つのパラメータを入力します。

「echo test」は単独で実行され、「Echo」の後に「test」が続く Echo の引数ではなく、「echo test」という単一のコマンドになりますが、これは無効です。

引数をコマンドから分離する必要がありますが、特に動的な引数が必要な場合は、バッチ スクリプトはこれを行うための最善の方法ではありません。代わりに PowerShell の使用を検討してください。

そうは言っても、シンプルで柔軟性がそれほど高くないバッチ ファイルが必要な場合は、バッチ ファイルで次のコードを試してください %2 %3 > %1

次に、最初に出力ファイルを指定し、次にコマンド、そのコマンドで使用する引数を指定します。

例えば、q log.txt echo Test、またはq log.txt echo "string with spaces to echo"

これらは私にとっては有効です。:)

関連情報