考虑以下代码:
$a = @()
$b = "" |select ho_ho,ha_ha
$b.ho_ho = "1"
$b.ha_ha = "2"
$a+=$b
$b = "" |select ho_ho,ha_ha
$b.ho_ho = "3"
$b.ha_ha = "4"
$a+=$b
$a | Format-Table -AutoSize
$a | Out-GridView使用Format-Table,将保留列标题上的下划线。
ho_ho ha_ha
----- -----
1 2
3 4但是,当使用Out-Gridview时,下划线会自动删除吗?

有人知道如何避免这种情况吗?
发布于 2017-01-19 20:39:17
这似乎与WPF中的事实有关,即文本中的第一个下划线以控件的加速字符为前缀。
有关详细信息,请参阅此博客帖子:
WPF使用下划线字符而不是符号字符(如WinForms)作为访问(a.k.a )的前缀。加速器或助记符)它的元素文本中的键,如Label和Button。 您可以使用两个下划线来转义下划线。
因此,这段代码将在网格视图中显示Ok,但不显示在Format-Table输出中。
$a = @()
$b = "" |select ho__ho,ha__ha
$b.ho__ho = "1"
$b.ha__ha = "2"
$a+=$b
$b = "" |select ho__ho,ha__ha
$b.ho__ho = "3"
$b.ha__ha = "4"
$a+=$b
$a | Format-Table -AutoSize
$a | Out-GridView请注意,转义只需要在字符串中的第一个下划线上,而不是在其他下划线上。
我认为这可能被认为是一个bug (因为它实际上也没有添加任何关键快捷方式),但是我找不到关于http://connect.microsoft.com的任何报告。
https://stackoverflow.com/questions/41677950
复制相似问题