我想通过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文档。
这应该算比较基础的东西吧,所以悬赏也不多,不嫌弃的帮忙写一下,我今天还会陆陆续续提问几个关于powershell的问题,欢迎大家继续关注。
“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循环处理每个文件。
该回答引用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文件。
csdn的队友们太给力啦!一次又一次的感动了我