PowerShellを使用して、アンパサンド(&)を持つ2つの文字列(つまり、 "&プロシージャ"という文字列)を比較しています。PowerShellでアンパサンドを持つ文字列を比較する方法
私が試しても、これらの文字列を一致させることはできません。余分な空白を取り除くために文字列を整えてみました。私は、単一引用符と二重引用符(および両方の組み合わせ)の両方の文字列をラップ試してみました:
"Policies & Procedures"
'Policies & Procedures'
"'Policies & Procedures'"
私は文字列を比較するために使用していたコードは次のとおりです。
if ($term1 -eq $term2) {
do something
}
は、視覚的に文字列を検査します - それらは同一ですが、if文が真と評価されることはありません。これらの2つの文字列を比較して真と評価する方法はありますか?
EDIT
私はこの文字列をやっている状況を比較SharePointサイトの分類でいう名を募集しています。ここで私が使用していたコードです:私は画面にterm.NameとTERMNAMEの両方を印刷している
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
}
、彼らは同じです。文字列にアンパサンドがない場合、この関数は機能します。アンパサンドがある場合、この関数は失敗します。これは、アンパサンドが問題であることを私が知る方法です。
ちょうど以下のコードを試して、期待通りに '$ true'を返しました。文字列を生成しているコードを表示できますか? '$ TERM1 = 'ポリシー&Procedures'' ' $ TERM2 =' ポリシー&Procedures'' '$ TERM1 -eq $ term2' –
同じ事、私のために' $ true'を返します。 – 4c74356b41
Ampersandは[PowerShell文字列の特殊文字ではありません](https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.core/about/about_quoting_rules)です問題を引き起こす特定のものとして? – TessellatingHeckler