ดัมพ์แบตช์สคริปต์เอาต์พุตลงในไฟล์ข้อความโดยไม่ระบุตำแหน่ง batchfile ไว้ล่วงหน้า


11

ฉันรู้ว่าฉันจะได้รับผลลัพธ์ด้วยวิธีนี้ (เพื่อจับภาพทั้งมาตรฐานและข้อผิดพลาด):

[batchFilePath] > [logFilePath] 2>&1

หรือด้วยวิธีนี้สำหรับเอาต์พุตมาตรฐาน:

C:\MyBatchFile.bat > output.txt

แต่มีวิธีการทำเช่นนี้โดยไม่ระบุตำแหน่งของไฟล์แบตช์เองหรือไม่?

ตัวอย่างเช่นสมมติว่าฉันรัน (เพียงดับเบิลคลิกเพื่อดำเนินการ) C: \ MyFolder \ MyBatch.cmd และหลังจากที่ฉันออกจากไฟล์แบตช์ (หรือมันเสร็จสมบูรณ์) ฉันสามารถหาผลลัพธ์ใน C: \ MyFolder \ MyBatch.txt

ถ้าเป็นเช่นนั้นฉันจะต้องใส่รหัสอะไรลงในไฟล์ batch เอง

คำตอบ:


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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.