Tôi cần chạy tập lệnh với PowerShell -Command "& tên mã" và tôi thực sự thích mã nếu mã thoát mà tôi nhận được từ PowerShell giống như mã thoát đã tự quay trở lại. Thật không may, PowerShell trả về 0 nếu kịch bản trả về 0 và 1 nếu kịch bản trả bất kỳ khác không có giá trị như minh họa dưới đây:-Mã thoát của mã lệnh không giống như mã thoát của mã lệnh
PS C:\test> cat foo.ps1
exit 42
PS C:\test> ./foo.ps1
PS C:\test> echo $lastexitcode
42
PS C:\test> powershell -Command "exit 42"
PS C:\test> echo $lastexitcode
42
PS C:\test> powershell -Command "& ./foo.ps1"
PS C:\test> echo $lastexitcode
1
PS C:\test>
Sử dụng [Môi trường] :: Exit (42) gần như hoạt động:
PS C:\test> cat .\baz.ps1
[Environment]::Exit(42)
PS C:\test> powershell -Command "& ./baz.ps1"
PS C:\test> echo $lastexitcode
42
PS C:\test>
Ngoại trừ khi tập lệnh được chạy tương tác, nó sẽ thoát khỏi toàn bộ hệ vỏ. Bất kỳ đề xuất?
Tôi nghĩ bạn muốn thoát bằng 'exit $ lastexitcode' trong tập lệnh' -command' – ProfessionalAmateur