请考虑以下代码:
$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时,会自动删除下划线?
有谁知道如何避免这种情况?
答案 0 :(得分:2)
这似乎与WPF中的事实有关,即文本中的第一个下划线为控件的加速器字符添加前缀。
有关详细信息,请参阅此blog post:
WPF使用下划线字符而不是&符号 (与WinForms一样)为访问前缀(a.k.a。加速器或 mnemonic)键入其元素的文本,如Label和Button。
您可以使用两个下划线来转义下划线。
因此,此代码将在gridview中显示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
请注意,只有字符串中的第一个下划线才需要转义,而不是其他字符串。
我认为这可能被视为一个错误(因为它实际上并没有添加任何关键快捷方式),但我无法在http://connect.microsoft.com
上找到任何报告