【发布时间】:2019-03-09 21:41:59
【问题描述】:
我从 Excel 的 Cells.Find() 方法中得到了一些奇怪的行为:
我正在搜索的变量:
PS > $volumename
vol_01
PS > $volumename.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object
不产生任何结果:
PS > $sheet.Cells.Find($volumename).Row
但如果我手动复制并粘贴该变量的值:
PS > $volumename = "vol_01"
PS > $volumename.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object
得到我期望的值:
PS > $sheet.Cells.Find($volumename).Row
198
在我看来,它们在各方面都是完全相同的类型。并非所有情况都会发生这种情况。一些卷名可以很好地通过,而另一些则不能。我确实为这篇文章清理了卷名,因为它有一个客户命名约定。它与上面的格式相同,并且与有效的卷名格式相同。
【问题讨论】:
-
您是如何在 Excel 工作表中打开 powershell 终端的?
-
我不是。我在 powershell 中打开 excel 表。
-
使用
[int[]] [char[]] 'hello' | % { '0x{0:x} {1}' -f $_, [char] $_ }来检查字符串中隐藏的控制字符。 -
@mklement0,很有趣。我在十六进制代码 0xa0 的字符串末尾看到一些无关紧要的不可见字符。我将如何修剪它?字符串替换?
标签: string powershell variables control-characters