Keluarkan skrip batch output ke file teks tanpa menentukan lokasi batchfile sebelumnya

11

Saya sadar bahwa saya bisa mendapatkan output dengan cara ini (untuk menangkap standar dan kesalahan):

[batchFilePath] > [logFilePath] 2>&1

Atau cara ini untuk output standar:

C:\MyBatchFile.bat > output.txt

Tetapi apakah ada cara untuk melakukan ini tanpa menentukan lokasi file batch itu sendiri?

Sebagai contoh mari kita asumsikan saya menjalankan (cukup dua kali klik untuk menjalankan) C: \ MyFolder \ MyBatch.cmd dan setelah saya keluar dari file batch (atau selesai) saya dapat menemukan output di C: \ MyFolder \ MyBatch.txt

Jika demikian, kode apa yang harus saya sertakan dalam file batch itu sendiri?

TMRW
sumber

Jawaban:

6

Satu-satunya solusi yang dapat saya pikirkan adalah menambahkan >> output.txtdi akhir setiap perintah yang menghasilkan sesuatu dari file batch Anda. Ini akan menambah output file Anda di akhiroutput.txt

Atau membuat file batch kedua yang akan menjadi konten .\MyBatchFile.bat > output.txt.

Levans
sumber
12

Lampirkan perintah Anda dalam kurung bulat. MyBatchFile.bat:

@echo off
REM setlocal enabledelayedexpansion

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

Variabel di dalam tanda kurung dievaluasi sekaligus ketika (ditemui. Gunakan enabledelayedexpansionuntuk menunda evaluasi.

Vlastimil Ovčáčík
sumber
1
terima kasih, telah menyelamatkan saya dari kerumitan karena harus membuat pembungkus
AdrianBR