我正在使用以下腳本將充滿txt和rtf文檔的目錄傳送到Word文檔。Powershell如何訪問Word和Word對象?
$global:word = new-object -comobject word.application
$word.Visible = $False
$srcfiles = \\Path\to\files
$savepath = \\Path\to\docfiles
$saveFormatDoc = [Enum]::Parse([Microsoft.Office.Interop.Word.WdSaveFormat], 0);
function saveas-document ($docs) {
"Opening $($docs.FullName)"
$opendoc = $word.documents.open($docs.FullName)
$savepath = "$docPath$($docs.BaseName)"
"Converting to $savepath.doc"
$opendoc.saveas([ref]"$savepath", [ref]$saveFormatDoc)
}
ForEach ($doc in $srcfiles) {
saveas-document -docs $doc
}
與它的編碼,現在的樣子,我覺得它打開Word的一個新實例,在Word中打開RTF/txt文件,保存爲Word文檔和重複。我並沒有放棄Word(除非在某處有一個隱含的$word.quit()
),我擔心我會用多個Word實例來殺死性能,但不知道是否需要我們去關注這個問題
什麼是一種更有效的方法來編碼這個來打開單個文檔處理實例,以及將Word作爲應用程序打開的語法是什麼,而不是打開一系列基於文件關聯啓動應用程序的文檔(這是我害怕的現在在做)?
定義了哪裏是$ word?我在代碼片段中看不到實例。 – Eris
@Eris Ooops。只是扔在.... – dwwilson66
我相信Colyn1337是正確的,但我也懷疑你應該保存每個文件後關閉它 – 2013-10-16 19:59:09