2010-11-30 2 views
1

인쇄 할 때 현재 날짜를 표시하는 필드 코드가 일부 문서에 설정되어 있지만 나머지 시간은 내가 아는 한 보이지 않습니다. 이제이 바닥 글을 수백 개의 문서에 적용해야합니다. 이게 PowerShell과 함께 할 수 있어야하는 것처럼 보이지만 실제로 사용하는 방법을 모르며 좋은 참조/문서를 찾을 수 없습니다 (지금까지 문서를 열고 텍스트를 대체하고 문서를 닫는다). 내가하고 싶은 필드 코드는 모든 바닥 글 구역의 오른쪽에있을 다음PowerShell에서 ms 단어 바닥 글에 필드 코드 추가

{IF {PRINTDATE \ @ "M/d 개/yyyy를의 시간 : mm"} = {날짜 \의 @ "M/월/일 H : mm "}"{날짜 \의 @ "M/월/일"} "" "

의 AS 통제되지 않은 COPY 나는 아마 그렇게 끔찍한 방법은 알고 있지만, 진짜 문제는 어떻게 할 PowerShell을 사용하여 Word 2007 문서의 바닥 글에 필드 코드를 추가 할 수 있습니까?

답변

1

감사의 말로 crobin1에게 감사드립니다. 그는 http://msdn.microsoft.com/en-us/library/bb258930%28v=office.12%29.aspx과 많은 "Hey, Scripting Guy!"라고 말했습니다. 블로그 항목
다음은 내가 원했던 스크립트 예입니다.

함수 편집 - 꼬리말 ([캐릭터] $ 문헌) {

add-type -AssemblyName "Microsoft.Office.Interop.Word" 

#Variables used 
set-variable -name wdAlignPageNumberCenter -value 1 

-option 상수

$fc1 = @" IF {PRINTDATE \@ "M/d/yyyy h:mm"}={DATE \@ "M/d/yyyy h:mm"} "UNCONTROLLED COPY AS OF {DATE \@ "M/d/yyyy"}" " " "@ 


$Word = New-Object -comobject Word.Application 
$Word.Visible = $True 
#$Word.Visible = $False 

$fc2 = [ref] "" -as [Type] 

$OpenDoc = $Word.Documents.Open($Document) 
$c = $OpenDoc.Sections.Item(1).Footers.Item(1).PageNumbers.Add($wdAlignPageNumberCenter) 
$range1 = $openDoc.Sections.Item(1).Footers.Item(1).range 
$field1 = $OpenDoc.Fields.Add($range1, -1, $fc2) 
$field1.Code.Text = $fc1 
$field1.Update 

#$OpenDoc.Close() } 
관련 문제