私はこの方法で出力を取得できることを認識しています(標準とエラーの両方をキャプチャするため):
[batchFilePath] > [logFilePath] 2>&1
または、標準出力の場合は次のようになります。
C:\MyBatchFile.bat > output.txt
ただし、バッチファイル自体の場所を指定せずにこれを行う方法はありますか?
たとえば、C:\ MyFolder\MyBatch.cmdを実行(ダブルクリックして実行)し、バッチファイルを終了(または完了)した後、C:\ MyFolder\MyBatch.txtに出力があると仮定します。
もしそうなら、どのコードをバッチファイル自体に含める必要がありますか?
私が考えることができる唯一の解決策は、バッチファイルの何かを出力するすべてのコマンドの最後に>> output.txt
を追加することです。 output.txt
の最後にファイルの出力を追加します
または、コンテンツが.\MyBatchFile.bat > output.txt
になる2番目のバッチファイルを作成します。
コマンドは丸括弧で囲みます。 MyBatchFile.bat
:
@echo off
REM setlocal enabledelayedexpansion
(
echo line one
echo line two
echo line three
) > "%~dpn0.txt"
括弧内の変数は、(
が見つかりました。評価を遅らせるにはenabledelayedexpansion
を使用します。