Виведення пакетного сценарію в текстовий файл без попереднього вказування місця розташування пакетного файлу


11

Я знаю, що я можу отримати вихід таким чином (щоб захопити як стандарт, так і помилки):

[batchFilePath] > [logFilePath] 2>&1

Або таким чином для стандартного виводу:

C:\MyBatchFile.bat > output.txt

Але чи можна це зробити, не вказуючи місце розташування самого пакетного файлу?

Наприклад, припустимо, що я запускаю (просто двічі клацніть для виконання) C: \ MyFolder \ MyBatch.cmd і після того, як я вийду з пакетного файлу (або він завершується), я можу знайти вихід у C: \ MyFolder \ MyBatch.txt

Якщо так, який код мені потрібно буде включити до самого пакетного файлу?

Відповіді:


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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.