所以我正在使用 Compare-Object,它对于比较文件效果很好。但如果只是字符串呢?有没有办法找出字符串之间的差异? CompareTo() 擅长报告存在差异,但不报告差异是什么。例如:
PS:> $a = "PowerShell rocks"
PS:> $b = "Powershell rocks"
PS:> $a.CompareTo($b)
1
PS:> Compare-Object -ReferenceObject $a -DifferenceObject $b
PS:>
什么也没有返回。
有什么方法可以让我了解字符串之间的实际差异,而不仅仅是存在差异?
也许是这样的:
function Compare-String {
param(
[String] $string1,
[String] $string2
)
if ( $string1 -ceq $string2 ) {
return -1
}
for ( $i = 0; $i -lt $string1.Length; $i++ ) {
if ( $string1[$i] -cne $string2[$i] ) {
return $i
}
}
return $string1.Length
}
如果两个字符串相等或两个字符串之间第一个差异的位置,该函数返回 -1。如果您想要不区分大小写的比较,则需要使用-eq
代替-ceq
and -ne
代替-cne
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)