使用函数传递字符串并始终获取$ null变量

时间:2014-05-04 01:44:10

标签: powershell scripting

我在函数的开头使用以下内容,该函数用于查询计算机中的各种wmi对象。如果仅运行get_volumes,则应使用127.0.0.1。似乎当我运行get_volumes而没有任何字符串时,它会直接传递给else段。什么是正确或更好的方法来实现这一目标?

PS> function get_volumes([string]$a){
if ($a -eq $null){
    write-host 'Using localhost'
    $a = '127.0.0.1'
    }else{ write-host 'Using' $a}
}

PS>get_volumes
Using 

由于

1 个答案:

答案 0 :(得分:0)

$a是一个空字符串,而不是$null。试试这个:

function Get-Volumes([string]$IPAddress = '127.0.0.1'){
    Write-Host "Using $IPAddress"
}

请注意,您可以为用户不为参数提供参数时设置默认值。