Tại sao bắt đầu quá trình
không tìm thấy tệp thực thi (không có trong đường dẫn) nếu -RedirectStandardOutput
hoặc -RedirectStandardError
Được xác định?
I E.
[X:\] Start-Process -FilePath "prog.exe" -WorkingDirectory (Get-Location).Path
Chương trình bắt đầu và thực thi như bình thường. Nhưng khi tôi thêm chuyển hướng đầu ra, mọi thứ sẽ sụp đổ:
[X:\] Start-Process -FilePath "prog.exe" -WorkingDirectory (Get-Location).Path -RedirectStandardOutput stdout.txt
Start-Process: Lệnh này không thể chạy được do lỗi: Hệ thống không thể tìm thấy tệp được chỉ định.
Chuyển hướng với 1>stdout.txt
nhà điều hành hoạt động như mong đợi.
Điều này dường như không ảnh hưởng đến các chương trình nằm trong các thư mục được liệt kê trong CON ĐƯỜNG
. Tôi thực sự không thể tìm ra logic ở đây là gì. Việc chuyển hướng không liên quan gì đến việc giải quyết đường dẫn nhị phân ngay từ đầu.
Chạy trên Windows 10 Professional.
Cập nhật: Dấu vết đầy đủ & bộ sao chép đơn giản
tái bút> con mèo .\hello.c
#include <stdio.h>
int chính(int argc, char** argv)
{
printf("Meh\n");
getchar();
trả về 0;
}
PS> cl xin chào.c
Trình biên dịch tối ưu hóa Microsoft (R) C/C++ Phiên bản 19.29.30138 cho x86
Bản quyền (C) Tập đoàn Microsoft. Đã đăng ký Bản quyền.
chào c
Microsoft (R) Trình liên kết gia tăng Phiên bản 14.29.30138.0
Bản quyền (C) Tập đoàn Microsoft. Đã đăng ký Bản quyền.
/ra:xin chào.exe
xin chào.obj
PS> Start-Process -FilePath hello.exe -WorkingDirectory (Get-Location).Path
PS> Start-Process -FilePath hello.exe -WorkingDirectory (Get-Location).Path -RedirectStandardOutput stdout.txt
Start-Process : Lệnh này không thể chạy được do lỗi: Hệ thống không thể tìm thấy tệp được chỉ định.
Tại dòng:1 ký tự:1
+ Start-Process -FilePath hello.exe -WorkingDirectory (Get-Location).Pa...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Start-Process], InvalidOperationException
+ FullQualifiedErrorId : InvalidOperationException,Microsoft.PowerShell.Commands.StartProcessCommand
cập nhật 2:
Có vẻ như việc sử dụng đường dẫn tuyệt đối cho tệp thực thi là một cách giải quyết vấn đề. (Mặc dù nó không giải thích tại sao hướng đầu ra phá vỡ độ phân giải tên/đường dẫn thực thi ngay từ đầu)