Windows PowerShell Script เพื่อแปลงโฟลเดอร์ของ Word Docs เป็น PDF


2

ดังนั้นฉันจึงมีรหัสพื้นฐานในการทำเช่นนี้ เช่นแปลงโฟลเดอร์เอกสาร word เป็น pdf

# Acquire a list of DOCX files in a folder

$Files=GET-CHILDITEM ‘C:\Users\Ashley\downloads\articles\*.DOC’
$Word=NEW-OBJECT –COMOBJECT WORD.APPLICATION


Foreach ($File in $Files) {

    # open a Word document, filename from the directory

    $Doc=$Word.Documents.Open($File.fullname)

    # Swap out DOCX with PDF in the Filename

    $Name=($Doc.Fullname).replace(“doc”,”pdf”)

    # Save this File as a PDF in Word 2010/2013
    $Doc.saveas([ref] $Name, [ref] 17)
    $Doc.close()

}

แต่มันจะยืนหากฉันมีไฟล์ docx ฉันต้องเรียกใช้รหัสแทนที่ doc ด้วย docx อีกครั้ง มีวิธีใดบ้างที่ฉันสามารถใช้แทนที่ฟังก์ชั่นแทนที่ doc และ docx สำหรับ pdf ได้ จึงไม่จำเป็นต้องเรียกใช้ซ้ำสองครั้งหรือไม่ ขอขอบคุณ!

คำตอบ:


1

สิ่งนี้น่าจะช่วยได้ ขอให้สังเกตว่า get-childitem ค้นหา doc * และ regex ในการแทนที่

$Files=GET-CHILDITEM 'C:\Users\Ashley\downloads\articles\*.DOC*'
$Word=NEW-OBJECT –COMOBJECT WORD.APPLICATION

Foreach ($File in $Files) {

    # open a Word document, filename from the directory

    $Doc=$Word.Documents.Open($File.fullname)

    # Swap out DOCX with PDF in the Filename

    $Name=$Doc.Fullname -replace('doc([x]{0,1})',"pdf")

    # Save this File as a PDF in Word 2010/2013
    $Doc.saveas([ref] $Name, [ref] 17)
    $Doc.close()

}

ฉันได้รับข้อผิดพลาดยกเว้นการเรียก "SaveAs" ด้วยอาร์กิวเมนต์ "16": "คำสั่งล้มเหลว" ที่บรรทัด: 17 ถ่าน: 16 + $ Doc.saveas <<<< ([ref] $ Name, [ref] 17) + CategoryInfo: NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId: DotNetMethodException
Web Dev

ฉันแก้ไขรหัสและใช้ -replace ฉันสามารถบันทึกเป็นไฟล์ pdf ได้
Micky Balladelli

สวัสดี @Micky Balladelli ฉันใช้สคริปต์ของคุณเพื่อแปลงไฟล์ docx หลายไฟล์ แต่ล้มเหลวเนื่องจากข้อผิดพลาด: พารามิเตอร์“ 1” ไม่ควรเป็น System.Management.Automation.PSReference โปรดอย่าใช้ [ref] คุณเห็นว่าทำไม ฉันใช้ PS 2 บน Windows 7
Wayne Cui

@WayneCui มันอาจจะแตกต่างใน Word รุ่น? SaveAs คาดหวังอะไรในกรณีของคุณ
Micky Balladelli
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.