【发布时间】:2017-04-17 17:01:28
【问题描述】:
我正在使用 PowerShell 来比较两个包含与号 (&) 的字符串(即字符串“Policies & Procedures”)。
无论我尝试什么,我都无法让这些字符串匹配。我尝试修剪字符串以消除额外的空格。我尝试将字符串用单引号和双引号(以及两者的组合)括起来:
"Policies & Procedures"
'Policies & Procedures'
"'Policies & Procedures'"
我用来比较字符串的代码是:
if ($term1 -eq $term2) {
do something
}
直观地检查字符串 - 它们是相同的,但是 if 语句永远不会评估为真。有没有办法比较这两个字符串,使其评估为真?
编辑
我正在执行此字符串比较的上下文是在 SharePoint 网站的分类中查找术语名称。这是我正在使用的代码:
function getTerm($termName) {
foreach($term in $global:termset.Terms) {
$termTrimmed = $term.Name.trim()
Write-Host "term name = $termTrimmed" -foregroundcolor cyan
if ($termTrimmed -eq $termName) {
return $term
}
}
return null
}
我已将 term.Name 和 termName 都打印到屏幕上,它们是相同的。如果字符串中没有 & 符号,则此函数有效。如果有 & 符号,此功能将失败。这就是我知道与号是问题的方式。
【问题讨论】:
-
刚刚尝试了下面的代码,它按预期返回了
$true,你能显示生成字符串的代码吗?$term1 = 'Policies & Procedures'$term2 = 'Policies & Procedures'$term1 -eq $term2 -
同样的事情,为我返回
$True。 -
& 符号是 not a special character in PowerShell strings,是什么让您将其称为导致问题的特定事物?
-
我认为我的问题不应该被降级,因为它确实揭示了&符号之间的区别
标签: string powershell compare