2012-06-04 82 views
1

我正在尝试使用Powershell,并让它将版权字符输出到MS Word文档中。例如,下面列出的代码就是我正在尝试使用的代码,它不起作用。Powershell中的特殊字符

$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() 

任何帮助,非常感谢为使这项工作同时为版权的字符和其他类似的特殊字符。

回答

3

这里有几个问题。我将列出每个字符的地址和地址:

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

[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 

希望有所帮助。祝你好运。

+0

感谢您的信息和提示。他们一直很有帮助! – John