2010-01-13 16 views
8

Ben gibi birçok uzun parametreleri kabul bazı PowerShell komut dosyaları, tüm parametreler tek bir satırda olmadıkça PowerShell çalıştırmak tür komut dosyalarını yapmak için görünmüyor olabilirPowerShell komut dosyaları yalnızca tek bir satır kullanılarak çağrılmalıdır?

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

var. Senaryonu bu şekilde daha çok çağırmanın bir yolu var mı?

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

okunabilirliği eksikliği beni deli ediyor, ancak komut dosyaları gerçekten bu parametrik olması gerekiyor.

cevap

13

PowerShell, komut satırının sonunda, boru gibi belirli karakterleri görmedikçe, paren açılmadan veya açık kıvırcık olmadıkça, komutun tamamlandığını düşünür. Sadece her satırın sonunda bir satır devam karakteri `` `koymak ancak devamının karakterden sonra boşluk olmadığından emin olun:

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

Eğer PowerShell 2.0 kullanıyorsanız ayrıca bir HashTable bu parametreleri koyabilirsiniz ve kullanım splatting örn:

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

Ben virgül operatörü PowerShell SO UZUN aslında 'operatör olarak değil biten bir dize parametresi ayrıştırma oluyor AS sonraki satıra devam yapmak için yeterli olduğunu tespit ettik, ' –

+0

Teşekkürler. Eminim başka karakterler de PowerShell'in daha fazla olduğunu gösteriyor. Bunların belgelenmiş bir listesi olduğundan emin değilsiniz. –

+0

Keith, beni hatırladığın için teşekkürler Posh'ta bir çırpma var. Okudum ve sonra unut. Şimdi, komut dosyası/işlev parametreleriyle nasıl çalışılacağına dair pek çok olasılık getirdiğini görüyorum. – stej

İlgili konular