【发布时间】:2020-01-07 03:13:52
【问题描述】:
目前,我正在编写一个脚本,将错误压缩的 PDF 文件移动到某个文件夹。我已经做到了。我需要开始工作的下一件事是将压缩的 .pdf 文件解压缩到不同的文件夹中。
这是我的整个脚本。除了最后 2 行之外的所有内容都专用于查找压缩的 PDF 文件并移动它们。
在第一部分,脚本检查文件夹中每个 pdf 文件的前几个字节。如果它们以“PK*”开头,它们是 zip 文件并被移动到压缩文件夹中。 对于每个 PDF/zip 文件,folder next to it. 中都有一个关联的 HL7 文件
这些也需要移动到同一个文件夹。从那里需要解压缩 zip 文件并将其重新定位到“解压缩”
最后两行用于解压。
$pdfDirectory = 'Z:\Documents\16_Med._App\Auftraege\PDFPrzemek\struktur_id_1225\ext_dok'
$newLocation = 'Z:\Documents\16_Med._App\Auftraege\PDFPrzemek\Zip'
Get-ChildItem "$pdfDirectory" -Filter "*.pdf" | foreach {
if ((Get-Content $_.FullName | select -First 1 ) -like "PK*") {
$HL7 = $_.FullName.Replace("ext_dok","MDM")
$HL7 = $HL7.Replace(".pdf",".hl7")
move $_.FullName $newLocation;
move $HL7 $newLocation
}
}
Get-ChildItem 'Z:\Documents\16_Med._App\Auftraege\PDFPrzemek\Zip' |
Expand-Archive -DestinationPath 'Z:\Documents\16_Med._App\Auftraege\PDFPrzemek\Zip\unzipped' -Force
遗憾的是,这不起作用。
我怀疑这是因为这些文件没有 .zip 扩展名。唯一适用于 Expand-Archive 的过滤器是 .zip。
所以我需要找到一种方法来让这个函数解压缩文件,即使它们没有合适的扩展名......
【问题讨论】:
-
移动文件时只需附加扩展名
.zip?move $_.FullName (Join-Path $newLocation ($_.Name + '.zip')) -
听起来它可以工作,我将如何实现它?
Get-ChildItem 'Z:\Documents\16_Med._App\Auftraege\PDFPrzemek\Zip' | Expand-Archive -DestinationPath 'Z:\Documents\16_Med._App\Auftraege\PDFPrzemek\Zip\unzipped' -Force
标签: powershell zip unzip