将批处理脚本输出转储到文本文件中,而无需事先指定批处理文件的位置


11

我知道我可以通过这种方式获取输出(以捕获标准和错误):

[batchFilePath] > [logFilePath] 2>&1

或这样的标准输出:

C:\MyBatchFile.bat > output.txt

但是,有没有一种方法可以在不指定批处理文件本身位置的情况下执行此操作?

例如,假设我运行(只需双击即可执行)C:\ MyFolder \ MyBatch.cmd,退出批处理文件(或完成)后,我可以在C:\ MyFolder \ MyBatch.txt中找到输出。

如果是这样,我需要在批处理文件本身中包含什么代码?

Answers:


6

我能想到的唯一解决方案是>> output.txt在每个命令的末尾添加输出批处理文件的内容。它将在末尾添加文件的输出output.txt

或创建第二个批处理文件,其内容应为.\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 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.