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


11

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

[batchFilePath] > [logFilePath] 2>&1

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

C:\MyBatchFile.bat > output.txt

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

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

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

回答:


6

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

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


12

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

@echo off
REM setlocal enabledelayedexpansion

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

括弧内の変数(は、に遭遇すると一度に評価されます。enabledelayedexpansion評価を遅らせるために使用します。


1
ありがとう、ラッパーを作成する手間を省いてくれた
AdrianBR
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.