我试图检查变量的数据类型,但它显示为"Object[]",字符串验证显示为false。所以我有点困惑,因为结果与我直接在powershell控制台中执行所有powershell命令的结果不同。以下是我在powershell控制台中执行的步骤
1(复制返回的结果并手动分配给"$eTSuspend">
2(执行$eTSuspen.GetType((.Name-是,它是字符串数据类型
3($eTSuspend.Contains("成功"(-是,结果返回true
我真的不明白为什么当我用脚本和powershell控制台执行时,同一个命令"GetType(("one_answers"-Contations"都返回了不同的结果
我正在执行一个powershell脚本,它将触发一个特定于产品的命令并处理返回的结果。返回结果的示例看起来像下面的
XXXX command completed Thu Jan 13 16:59:59 2022 :XXXX, Account 'XXXX' on 'XXXX' modified successfully
因此,如果结果包含修改成功,它将根据结果执行任务A,反之亦然。但是当我在powershell脚本中运行它时,我无法获得预期的输出。请参阅我下面的脚本
write-host "The type of variable :"$eTSuspend.GetType().Name
write-host "The string : "$eTSuspend.Contains('successfully')
FYI,$eTSuspend
是变量,存储命令返回的结果,以下是我的脚本输出
The type of variable : Object[]
The string : False
我试图检查变量的数据类型,但它显示为"Object[]",字符串验证显示为false。所以我有点困惑,因为结果与我直接在powershell控制台中执行所有powershell命令的结果不同。以下是我在powershell控制台中执行的步骤
1(复制返回的结果并手动分配给"$eTSuspend">
2(执行$eTSuspen.GetType((.Name-是,它是字符串数据类型
3($eTSuspend.Contains("成功"(-是,结果返回true
PS C:UsersXXX.XXX> $eTSuspend.GetType().Name
String
PS C:UsersXXX.XXX> $eTSuspend.Contains("successfully")
True
我真的不明白为什么当我用脚本和powershell控制台执行时,同一个命令"GetType(("one_answers"-Contations"都返回了不同的结果
您正在测试两种不同的类型的包容。
String.Contains()
执行子字符串搜索-如果在字符串中的任何偏移量处找到子字符串参数,则返回true:"abc def".Contains("def")
返回$true
,因为可以在偏移量4处从"abc def"
提取持续的"def"
- CCD_ 7和CCD_;这个数组/列表/集合是否包含其成员中参数的精确副本":
@("abc", "def").Contains("def")
返回true,因为数组中至少有一个项满足约束-"def"
和"def"
是等效的@("abc", "def").Contains("de")
返回false,因为数组中没有任何项与"de"
完全等效,换句话说:"abc" -eq "de"
不正确"def" -eq "de"
也不正确- 数组中没有更多要测试的项,因此返回
$false