Powershell 设置存储在数组中的变量的值?
我有一些存储在数组中的变量。是否可以对它们进行null检查,如果为null,则使用ForEach循环将值更改为“None”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 $
$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的一个提示。我真的很感谢你的帮助!