web-dev-qa-db-ja.com

バッチファイルの場所を事前に指定せずに、バッチスクリプトの出力をテキストファイルにダンプする

私はこの方法で出力を取得できることを認識しています(標準とエラーの両方をキャプチャするため):

[batchFilePath] > [logFilePath] 2>&1

または、標準出力の場合は次のようになります。

C:\MyBatchFile.bat > output.txt

ただし、バッチファイル自体の場所を指定せずにこれを行う方法はありますか?

たとえば、C:\ MyFolder\MyBatch.cmdを実行(ダブルクリックして実行)し、バッチファイルを終了(または完了)した後、C:\ MyFolder\MyBatch.txtに出力があると仮定します。

もしそうなら、どのコードをバッチファイル自体に含める必要がありますか?

11
TMRW

私が考えることができる唯一の解決策は、バッチファイルの何かを出力するすべてのコマンドの最後に>> output.txtを追加することです。 output.txtの最後にファイルの出力を追加します

または、コンテンツが.\MyBatchFile.bat > output.txtになる2番目のバッチファイルを作成します。

6
Levans

コマンドは丸括弧で囲みます。 MyBatchFile.bat

@echo off
REM setlocal enabledelayedexpansion

(
  echo line one
  echo line two
  echo line three
) > "%~dpn0.txt"

括弧内の変数は、(が見つかりました。評価を遅らせるにはenabledelayedexpansionを使用します。

12