【问题标题】:Special characters in PowerShellPowerShell 中的特殊字符
【发布时间】:2012-06-08 23:22:22
【问题描述】:

我正在尝试使用 PowerShell 并将版权字符输出到 Microsoft Word 文档中。例如,下面列出的代码是我正在尝试使用的代码,但它不起作用。

$SummaryPara.Range.Text = "© "
$SummaryPara.Range.Text = "Get-Date -Format yyyy"
$SummaryPara.Range.Text = " - Name of Org Here "
$SummaryPara.Range.InsertParagraphAfter()

我是否需要以某种方式使用 Alt + 0169 序列?

我不确定我做错了什么,因为以下代码似乎可以工作:

$selection.TypeParagraph()
$selection.TypeText("© ")
$selection.TypeText((Get-Date -Format yyyy))
$selection.TypeText(" - Name of Org Here ")
$selection.TypeParagraph()

我怎样才能使版权字符和其他类似的特殊字符都可以使用?

【问题讨论】:

    标签: powershell scripting special-characters powershell-2.0


    【解决方案1】:

    这里有一些问题。我将列出这些并解决每个问题:

    1. 您可以通过将 Unicode 表示转换为 char 来获得所需的任何字符。在这种情况下

      [char]0x00A9
      
    2. 您将新值分配给 $SummaryPara.Range.Text 三次。所以,你每次都覆盖以前的值,而不是连接('+' 运算符),我认为这是你想要做的。

    3. 您正在尝试使用 cmdlet Get-Date,但由于您已引用它,您最终将得到文字字符串“Get-Date -Format yyyy”,而不是 cmdlet 的结果。

    综合起来,我想你想要这样的东西:

    $word = New-Object -ComObject Word.Application
    $doc = $word.Documents.Add()
    $SummaryPara = $doc.Content.Paragraphs.Add()
    $SummaryPara.Range.Text = [char]0x00A9 + ($date = Get-Date -Format yyyy) + " - Name of Org Here "
    $word.Visible = $true
    

    【讨论】:

    • 感谢您的信息和提示。他们非常有帮助!
    猜你喜欢
    • 2014-07-31
    • 2012-08-07
    • 2013-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-17
    相关资源
    最近更新 更多