Kết xuất tập lệnh bó thành tập tin văn bản mà không chỉ định vị trí tập tin trước


11

Tôi biết rằng tôi có thể nhận được đầu ra theo cách này (để nắm bắt cả tiêu chuẩn và lỗi):

[batchFilePath] > [logFilePath] 2>&1

Hoặc cách này cho đầu ra tiêu chuẩn:

C:\MyBatchFile.bat > output.txt

Nhưng có cách nào để làm điều này mà không chỉ định vị trí của tệp bó không?

Ví dụ: giả sử tôi chạy (chỉ cần doubleclick để thực thi) C: \ MyFolder \ MyBatch.cmd và sau khi tôi thoát tệp bó (hoặc hoàn thành) tôi có thể tìm thấy đầu ra trong C: \ MyFolder \ MyBatch.txt

Nếu vậy tôi cần bao gồm mã nào trong tập tin bó?

Câu trả lời:


6

Giải pháp duy nhất tôi có thể nghĩ đến là thêm >> output.txtvào cuối mỗi lệnh xuất ra thứ gì đó của tệp bó của bạn. Nó sẽ thêm đầu ra của tập tin của bạn vào cuốioutput.txt

Hoặc tạo một tệp bó thứ hai có nội dung .\MyBatchFile.bat > output.txt.


12

Gửi các lệnh của bạn trong ngoặc tròn. MyBatchFile.bat:

@echo off
REM setlocal enabledelayedexpansion

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

Các biến trong dấu ngoặc được đánh giá tất cả cùng một lúc khi (gặp phải. Sử dụng enabledelayedexpansionđể trì hoãn việc đánh giá.


1
cảm ơn bạn, đã tiết kiệm cho tôi những rắc rối khi phải tạo một trình bao bọc
AdrianBR
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.