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.