2010-01-13 24 views
8

Tôi có một số kịch bản PowerShell chấp nhận nhiều thông số dài, như,Các tập lệnh PowerShell phải được gọi chỉ bằng một dòng đơn?

myScript.ps1 -completePathToFile "C:\...\...\...\file.txt" -completePathForOutput "C:\...\...\...\output.log" -recipients ("[email protected]") -etc. 

tôi dường như không thể làm cho PowerShell chạy kịch bản như vậy trừ khi tất cả các thông số đang ở trên một dòng đơn. Có cách nào để gọi kịch bản giống như thế này không?

myScript.ps1 
    -completePathToFile "C:\...\...\...\file.txt" 
    -completePathForOutput "C:\...\...\...\output.log" 
    -recipients (
    "[email protected]", 
    "[email protected]" 
    ) 
    -etc 

Việc thiếu khả năng đọc giúp ích cho tôi, nhưng các tập lệnh thực sự cần tham số này.

Trả lời

13

PowerShell cho rằng lệnh được hoàn thành ở cuối dòng trừ khi nó thấy các ký tự nhất định như một đường ống, mở paren hoặc mở xoăn. Chỉ cần đặt một nhân vật tiếp tục dòng `` `vào cuối mỗi dòng nhưng chắc chắn rằng không có dấu cách sau đó nhân vật tiếp tục:

myScript.ps1 ` 
    -completePathToFile "C:\...\...\...\file.txt" ` 
    -completePathForOutput "C:\...\...\...\output.log" ` 
    -recipients (
    "[email protected]", ` 
    "[email protected]" ` 
    ) 

Nếu bạn đang ở trên PowerShell 2.0, bạn cũng có thể đặt những thông số trong một Hashtable và sử dụng tính năng chia tách, ví dụ:

$parms = @{ 
    CompletePathToFile = 'C:\...\...\...\file.txt' 
    CompletPathForOutput = 'C:\...\...\...\output.log' 
    Recipients   = '[email protected]','[email protected]' 
} 
myScript.ps1 @parms 
+0

Tôi thấy rằng toán tử dấu phẩy đủ để làm cho Powershell tiếp tục dòng tiếp theo, SO LONG AS thực sự phân tích cú pháp dưới dạng toán tử chứ không phải tham số chuỗi kết thúc bằng ', ' –

+0

Cảm ơn. Tôi chắc rằng có các ký tự khác cho biết PowerShell có nhiều hơn. Không chắc có một danh sách tài liệu nào trong số này. –

+0

Keith, cảm ơn vì đã nhắc nhở tôi rằng có một tiếng vỗ tay trong Posh. Tôi đọc nó rồi quên. Bây giờ tôi thấy rằng nó mang lại rất nhiều khả năng làm thế nào để làm việc với các tham số script/function. – stej

Các vấn đề liên quan