Tệp CMD để chuyển hướng đầu ra quá trình con


0

Tôi cần một tệp bó nhận hai tham số: một lệnh (tên tệp với một số đối số) và đường dẫn đến tệp - để chuyển hướng đầu ra của thực thi lệnh. Tôi đã thử một số biến thể như call %1 > %2, start %1 > %2 trong tệp 'q.cmd', với cách gọi là q "echo test" "log.txt"q 'echo test' 'log.txt'%1 hoặc là call %1 với q "echo test > log.txt" nhưng không có gì hoạt động. Tôi cũng đã thử nó với ^ trước >. Trong hầu hết các trường hợp, nó in "'echo không được nhận dạng là một dấu phẩy bên trong hoặc bên ngoài ..." hoặc một cái gì đó như thế này và đôi khi tạo 123.txt trống hoặc với một số dòng dịch vụ, nhưng không phải là "thử nghiệm" như tôi cần. Làm thế nào tôi có thể giải quyết vấn đề?



@root Không, tôi đã thấy điều này sớm.
SerG

Câu trả lời:


1

q "echo test" "log.txt" sẽ cho ăn hai tham số.

"Kiểm tra tiếng vang" sẽ tự nó và không còn là "Tiếng vọng" theo sau là "kiểm tra" làm đối số cho Echo, mà thay vào đó là một lệnh duy nhất gọi là "kiểm tra tiếng vang", không hợp lệ.

Bạn cần tách biệt các đối số khỏi các lệnh và thực sự kịch bản hàng loạt KHÔNG phải là cách tốt nhất để làm điều này, đặc biệt nếu bạn muốn có một lượng đối số động. Thay vào đó, hãy sử dụng PowerShell.

Phải nói rằng, nếu bạn muốn một cái gì đó đơn giản, không linh hoạt và vẫn là một tệp bó, thì có lẽ hãy thử những điều sau trong tệp bó của bạn: %2 %3 > %1.

Sau đó, chỉ cần xác định tệp đầu ra trước, theo sau là lệnh, theo sau là đối số bạn muốn sử dụng với lệnh đó.

I E.: q log.txt echo Test, hoặc là q log.txt echo "string with spaces to echo".

Những công việc này cho tôi. :)


Ít nhất bạn đã làm rõ lý do tại sao những nỗ lực của tôi là vô ích. Nhưng vấn đề là "lệnh" có thể là một lệnh hoặc exe + một số đối số (biến thiên). Là cách để làm cho tham số được coi là lệnh?
SerG

1
Bạn có thể thêm %4 %5 %6 %7 %8 %9... trước < nếu bạn muốn chấp nhận nhiều tranh luận hơn Nhưng nếu bạn thực sự cần một số lượng đối số khác nhau thì lô không phải là cách để làm điều đó, thay vào đó hãy xem xét sử dụng PowerShell, vì các tập lệnh PS có thể được lập trình để chấp nhận đối số được đặt tên , cũng như một lượng đối số tùy ý.
Ƭᴇcʜιᴇ007
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.