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?

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.


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.


1
terima kasih, telah menyelamatkan saya dari kerumitan karena harus membuat pembungkus
AdrianBR
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.