Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 设置存储在数组中的变量的值?_Powershell - Fatal编程技术网

Powershell 设置存储在数组中的变量的值?

Powershell 设置存储在数组中的变量的值?,powershell,Powershell,我有一些存储在数组中的变量。是否可以对它们进行null检查,如果为null,则使用ForEach循环将值更改为“None” $a = "" $b = "" $c = "something" $array = @($a, $b, $c) ForEach($element in $array){ If(!$element){ Set-Variable -Name $element -Value "None" } } 以下代码将重新创建$array。注意空字符串“和$null $

我有一些存储在数组中的变量。是否可以对它们进行null检查,如果为null,则使用ForEach循环将值更改为“None”

$a = ""
$b = ""
$c = "something"

$array = @($a, $b, $c)

ForEach($element in $array){
   If(!$element){
     Set-Variable -Name $element -Value "None"
}
}

以下代码将重新创建
$array
。注意空字符串
$null

$a = $null
$b = ""
$c = "something"

$array = @($a, $b, $c)

$array = ForEach($element in $array){
    If($element -eq $null){
        "none"
    }else{
        $element
    }
}
$array
如果您想同时涵盖
$null
”“
,您可以使用
[string]:IsNullOrEmpty($element)
进行检查,正如LotPings指出的那样:

if([string]::IsNullOrEmpty($element)){
    "none"
}else{
    $element
}
但是,如果要处理嵌套数组,事情会变得有点复杂,因为powershell在返回单元素数组时遇到问题(这里有一篇关于它的好文章:)
正如本文所述,在单元素数组前面需要一个额外的逗号。看起来是这样的:

$a = @()
$b = @()
$c = @("something")

$array = @($a,$b,$c)

$array = ForEach ($element in $array){ 
    if ($element.count -eq 0){
         ,@("none")
    }else{
         ,$element
    }
}
$array
$array | ForEach-Object {$_.gettype()}

以下代码将重新创建
$array
。注意空字符串
$null

$a = $null
$b = ""
$c = "something"

$array = @($a, $b, $c)

$array = ForEach($element in $array){
    If($element -eq $null){
        "none"
    }else{
        $element
    }
}
$array
如果您想同时涵盖
$null
”“
,您可以使用
[string]:IsNullOrEmpty($element)
进行检查,正如LotPings指出的那样:

if([string]::IsNullOrEmpty($element)){
    "none"
}else{
    $element
}
但是,如果要处理嵌套数组,事情会变得有点复杂,因为powershell在返回单元素数组时遇到问题(这里有一篇关于它的好文章:)
正如本文所述,在单元素数组前面需要一个额外的逗号。看起来是这样的:

$a = @()
$b = @()
$c = @("something")

$array = @($a,$b,$c)

$array = ForEach ($element in $array){ 
    if ($element.count -eq 0){
         ,@("none")
    }else{
         ,$element
    }
}
$array
$array | ForEach-Object {$_.gettype()}

是,但要替换
$null
还是空字符串?您的数组没有空值。是的,但要替换
$null
还是空字符串?你的数组没有空值。附带问题。如果是$a=@()、$b=@()和$c=@(“某物”),您能否向空数组添加“无”?比如If($element.count-eq 0){$element+=“None”}?如果您想同时检查
If([string]::IsNullOrEmpty($element)){“None”}或者{$element}
@T-Me,那么这只是对OP的一个提示。我真的很感谢你的帮助!附带问题。如果是$a=@()、$b=@()和$c=@(“某物”),您能否向空数组添加“无”?比如If($element.count-eq 0){$element+=“None”}?如果您想同时检查
If([string]::IsNullOrEmpty($element)){“None”}或者{$element}
@T-Me,那么这只是对OP的一个提示。我真的很感谢你的帮助!