【发布时间】:2017-09-28 18:19:24
【问题描述】:
PowerShell 自动假定值 '9e9' (在下面的命令中) 是整数;因为该值没有被引号包围。
我正在寻找任何巧妙的方法来将所有数组元素/值视为字符串(无论如何)或强制 PowerShell 处理中间带有 'e' 字符的任何值,作为一个字符串...或者,在其自动转换为整数之前的任何其他可能的方式不必用引号将值括起来。
命令:
Get-Input -var 9e9, ba7
代码:
function Get-Input {
[CmdletBinding()]
param(
[array[]]$Vars
)
$Var = $Vars[0]
write-output $Var
}
**** 更新 ****
TessellatingHeckler 在他的答案末尾有最好的解决方案。我只是对去除空格做了一个小的修改。我仍然认为这都是 PowerShell 的错。 j/k。我真的很感谢 TessellatingHeckler 有时间把它分解并仍然提供一个明智的解决方案。感谢 TessellatingHeckler!
命令:
Get-Input -vars "9e9, ba7"
新代码:
function Get-Input {
[CmdletBinding()]
param(
[string[]]$Vars
)
$Vars = $Vars.replace(' ', "")
$Vars = $Vars.split(",")
$Var = $Vars[0]
write-output $Var
}
【问题讨论】:
-
声明
[String[]]而不是[array[]]。
标签: arrays powershell types