2010-09-15 71 views

回答

6

是你的腳本,只是一個腳本或它包含一個函數?如果它是一個腳本,並接受參數會是這個樣子:

-- top of file foo.ps1 -- 
param($param1, $param2) 

<script here> 

您援引就像一個小命令excecpt,如果你是從當前目錄運行,您必須指定要像這樣的腳本路徑:

.\foo.ps1 a b 

另外請注意,您將參數傳遞給腳本(和功能)空格隔開,就像你的cmdlet做。

你提到的功能,所以如果你的腳本是這樣的,你有兩個選擇:

-- top of file foo.ps1 -- 
function foo ($param1, $param2) { 
    <script here> 
} 

如果你運行foo.ps1像上面,什麼都不會發生其他比你定義一個名爲foo的功能在一個臨時範圍內,並且該範圍將在腳本退出時消失。您可以在實際調用foo函數的腳本底部添加一行。但也許你打算更多地使用這個腳本作爲可重用的函數庫。在這種情況下,您可能需要load函數進入當前範圍。你可以做到這一點與點源操作.像這樣:

C:\PS> . .\foo.ps1 
C:\PS> foo a b 

現在函數foo將在全球範圍內進行定義。請注意,您可以在另一個腳本中執行相同的操作,這會將該函數加載到腳本的作用域中。