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"
。
これらは私にとっては有効です。:)