Durch das Ändern der hier gefundenen Antwort sollte dieses Teil des PowerShell-Skripts das tun, was Sie möchten. Speichern Sie es einfach als Datei mit der Erweiterung ".ps1". Wenn Sie es aufrufen, rufen Sie es einfach als ./filename.ps1 auf. Es extrahiert die Dateien in separate Ordner, löscht die ZIP-Dateien und entfernt alle Dateien mit der Erweiterung .pdf. Ich habe nicht getestet, ob es mit rekursiven Pfaden richtig funktioniert, aber es sollte, bitte testen Sie es.
Bearbeiten: Wenn Sie nicht möchten, dass Ihre ZIP-Dateien gelöscht werden, entfernen Sie die Zeile oder kommentieren Sie sie aus (#)rmdir -Path $_.FullName -Force
Voraussetzungen: PowerShell, 7-zip und zum Festlegen des 7-zip-Pfads in der Datei.
param([string]$folderPath="D:\Blah\files") Get-ChildItem $folderPath -recurse | %{ if($_.Name -match "^*.`.zip$") { $parent="$(Split-Path $_.FullName -Parent)"; write-host "Extracting $($_.FullName) to $parent" $arguments=@("e", "`"$($_.FullName)`"", "-o`"$($parent)\$($_.BaseName)`""); $ex = start-process -FilePath "`"C:\Program Files\7-Zip\7z.exe`"" -ArgumentList $arguments -wait -PassThru; if( $ex.ExitCode -eq 0) { write-host "Extraction successful, deleting $($_.FullName)" rmdir -Path $_.FullName -Force $arguments1="$($parent)\$($_.BaseName)\*.pdf" rmdir -Recurse -Path $arguments1 } } }