首先你的函數在第一次返回時結束(返回$ nconf_export_host),第二次是從未見過。如果你想返回多個元素(一個數組),你應該使用Write-Output
CmdLet。
編輯
回訪瓦爾你有至少三種解決方案:
1)通過書面方式
$global:nconf_export_host = Import-Csv $nconf_export_host_file -Delimiter ";"
或
與一個全局變量範圍工作
$script:nconf_export_host = Import-Csv $nconf_export_host_file -Delimiter ";"
您可以在功能外使用$nconf_export_host
。
2)傳輸參數參照
function CheckNagiosConfig ([ref]$nconf_export_host, [ref]$$nconf_export_service)
{
...
$nconf_export_host.value = Import-Csv $nconf_export_host_file -Delimiter ";"
...
$nconf_export_service.value = Import-Csv $nconf_export_service_file -Delimiter ";"
return $true
}
的功能在這種情況下,你可以保持語義返回值的指定函數是如何工作的,你可以在函數內部修改的參數傳遞引用。
3)使用輸出本身
function CheckNagiosConfig {
# Query nConf for hosts
Invoke-Expression -command $nconf_command_host | Out-file $nconf_export_host_file
$nconf_export_host = Import-Csv $nconf_export_host_file -Delimiter ";"
write-output $nconf_export_host
# Query nConf for services
Invoke-Expression -command $nconf_command_service | Out-file $nconf_export_service_file
$nconf_export_service = Import-Csv $nconf_export_service_file -Delimiter ";"
return $nconf_export_service
}
使用:
$a = CheckNagiosConfig
# $a[0] will be $nconf_export_host
# $a[1] will be $nconf_export_service
感謝您在清除了!但是,如何返回從函數創建的變量呢? – Sune 2012-02-04 22:19:57
我編輯了我的答案,向你解釋了多種返回變量的方法。 – JPBlanc 2012-02-05 12:53:19
非常感謝你! – Sune 2012-02-07 09:40:22