17
$ args數組我有一個測試的PowerShell V2腳本,看起來像這樣:訪問在PowerShell中
function test_args()
{
Write-Host "here's arg 0: $args[0]"
Write-Host "here's arg 1: $args[1]"
}
test_args
如果我把這個從PowerShell命令提示符下我得到這個屏幕上:
here's arg[0]: [0]
here's arg[1]: [1]
不是我想要的。看來我必須複製$ args [0]和$ args [1]到腳本中的新變量,然後才能使用它們?如果我這樣做,我可以訪問的東西很好。
有沒有訪問我的代碼索引的$ args的方法嗎?我嘗試過以各種方式在他們周圍使用花括號,但沒有運氣。
我會移動到指定的參數,最終,但我工作的腳本(這不是一個演示)是一個批處理文件的直口。
謝謝基思 - 我從我的編輯翻譯到SO時,更改了我的代碼,以糾正我的輸入錯誤。我想我的問題是,我是否需要將$ arg [0]和[1]傳遞給test_args作爲參數,或者函數本身是否可以訪問$ args數組? – larryq
函數總是可以訪問$ args。它將包含任何不映射到已定義函數參數的參數。如果沒有參數或所有參數映射到函數參數例如'function foo($ param1,$ param2){}'那麼$ args將是一個空數組。 –
有時我必須使用'Out-String'來獲取子表達式的輸出,以便按照需要顯示......例如使用散列表時。例如,假定arg 1是一個散列表:'Write-Host'這裏是arg 1:$($ args [1] | Out-String)「' – VertigoRay