qq_37156213 2023-03-04 10:04 采纳率: 53.3%
浏览 102
已结题

用powershell合并.docx格式的word文档并压缩

我想通过powershell合并文件夹内的所有docx格式的word文档

源文件夹路径为:D:\2022年12月21日朝花朝拾背单词软件\2019高中人教版\theCollection\AdobeAIR\Versions\myResources\2023年3月3日

输出路径为:D:\2022年12月21日朝花朝拾背单词软件\2019高中人教版\theCollection\AdobeAIR\Versions\myResources\myDoc.docx

合并完毕后,将源文件夹内的docx文档压缩后保存到:

D:\2022年12月21日朝花朝拾背单词软件\2019高中人教版\theCollection\AdobeAIR\Versions\myResources\myDoc.zip

最后删除源文件夹内的那堆docx文档。

img

这应该算比较基础的东西吧,所以悬赏也不多,不嫌弃的帮忙写一下,我今天还会陆陆续续提问几个关于powershell的问题,欢迎大家继续关注。

@BitGPT @霸都小魔女 @Iverson1022

  • 写回答

3条回答 默认 最新

  • 「已注销」 2023-03-04 10:15
    关注

    “Devil组”引证GPT后的撰写:
    用PowerShell的Compress-Archive cmdlet来完成这个任务,以下是一个示例脚本:

    # 设置源文件夹路径和输出路径
    $sourcePath = "D:\2022年12月21日朝花朝拾背单词软件\2019高中人教版\theCollection\AdobeAIR\Versions\myResources\2023年3月3日"
    $outputPath = "D:\2022年12月21日朝花朝拾背单词软件\2019高中人教版\theCollection\AdobeAIR\Versions\myResources\myDoc.docx"
    
    # 合并源文件夹内的所有docx文件到输出文件
    Get-ChildItem -Path $sourcePath -Filter "*.docx" | Foreach-Object { 
        $content = Get-Content $_.FullName -Raw
        Add-content -Path $outputPath -Value $content
    }
    
    # 压缩输出文件到zip文件
    $zipPath = "D:\2022年12月21日朝花朝拾背单词软件\2019高中人教版\theCollection\AdobeAIR\Versions\myResources\myDoc.zip"
    Compress-Archive -Path $outputPath -DestinationPath $zipPath
    
    # 删除源文件夹内的docx文件
    Get-ChildItem -Path $sourcePath -Filter "*.docx" | Remove-Item
    
    
    

    先设置源文件夹路径和输出路径,然后使用Get-ChildItem cmdlet获取源文件夹内的所有docx文件,并使用Foreach-Object cmdlet循环处理每个文件。

    • 在循环中,使用Get-Content cmdlet读取文件内容,并使用Add-Content cmdlet将内容添加到输出文件中。
    • 完成合并后,使用Compress-Archive cmdlet将输出文件压缩到zip文件,并使用Remove-Item cmdlet删除源文件夹内的docx文件。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
  • BitGPT 2023-03-04 10:30
    关注

    该回答引用ChatGPT

    如有疑问还请 回复我

    可以使用以下PowerShell脚本来实现这个任务:

    
    # 设置源文件夹路径和输出路径
    $sourceFolder = "D:\2022年12月21日朝花朝拾背单词软件\2019高中人教版\theCollection\AdobeAIR\Versions\myResources\2023年3月3日"
    $outputFile = "D:\2022年12月21日朝花朝拾背单词软件\2019高中人教版\theCollection\AdobeAIR\Versions\myResources\myDoc.docx"
    
    # 合并所有docx文件到输出文件
    $wordApp = New-Object -ComObject Word.Application
    $wordDoc = $wordApp.Documents.Add()
    $docxFiles = Get-ChildItem $sourceFolder -Filter *.docx
    foreach ($docxFile in $docxFiles) {
        $doc = $wordApp.Documents.Open($docxFile.FullName)
        $doc.Content.Select()
        $doc.Content.Copy()
        $selection = $wordDoc.Range()
        $selection.Collapse([Microsoft.Office.Interop.Word.WdCollapseDirection]::wdCollapseEnd)
        $selection.Paste()
        $doc.Close()
    }
    $wordDoc.SaveAs($outputFile)
    $wordDoc.Close()
    $wordApp.Quit()
    
    # 压缩源文件夹内的docx文件到myDoc.zip
    $zipFile = "D:\2022年12月21日朝花朝拾背单词软件\2019高中人教版\theCollection\AdobeAIR\Versions\myResources\myDoc.zip"
    Add-Type -AssemblyName System.IO.Compression.FileSystem
    [System.IO.Compression.ZipFile]::CreateFromDirectory($sourceFolder, $zipFile)
    
    # 删除源文件夹内的docx文件
    Remove-Item $sourceFolder\*.docx
    
    

    在这个脚本中,我们首先指定了源文件夹路径和输出路径。然后,我们使用PowerShell的Get-ChildItem命令获取源文件夹中所有的docx文件,并使用foreach循环打开每个文件,并将其内容复制到一个新的Word文档中。最后,我们将新的Word文档保存到输出路径。

    接下来,我们使用.NET的System.IO.Compression.FileSystem类来创建一个新的zip文件,并将源文件夹中所有的docx文件压缩到其中。最后,我们使用PowerShell的Remove-Item命令删除源文件夹中的所有docx文件。

    评论
    1人已打赏
  • qq_37156213 2023-03-04 10:18
    关注

    csdn的队友们太给力啦!一次又一次的感动了我

    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月12日
  • 已采纳回答 3月4日
  • 修改了问题 3月4日
  • 赞助了问题酬金15元 3月4日
  • 展开全部

悬赏问题

  • ¥15 OpenFOAM多孔介质传热模型建模
  • ¥15 QT 实现 RSTP 语音对讲功能
  • ¥50 AES魔改之后的安全性关于PRF(相关搜索:密码学)
  • ¥15 用C语言写的一个程序遇到了两个问题第一是偏移正确但读取不到坐标,第二个问题是自己定义的函数实现不了获取指定进程模块。
  • ¥15 在安装Anaconda时总是闪退怎么办?
  • ¥15 对图中电路进行以下几个方面的分析
  • ¥15 对图中电路进行以下几个方面的分析
  • ¥15 对图中电路进行以下几个方面的分析
  • ¥15 对图中电路进行以下几个方面的分析
  • ¥500 抖音主页视频预存加载卡bug