2012-06-04 80 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