Zip Entpacken Dateinamen auslesen und restlichen Dateien mit Prefix umbennen
Ich habe mehrer Zip Dateien in einem Ordner (C:\zip), die als Inhalt jeweils 2 Ordner mit Dateien haben.
Hier die Struktur der Zip Dateien
Ordner: Plot (Hier liegeben *.Tiff Dateien)
Ordner: Image (Hier liegt eine Datei mit zB. dem Namen 1234.plt)
Jetzt soll die Datei entpackt werden und der Dateiname der .plt Datei als Prefix mit einem Punkt vor die Tiff Dateien geschrieben werden.
So sollte es entpakt dann aussehen (in C:\Unzip).
Ordner: Plot (1234.abc.Tiff, 1234.def.Tiff, usw.)
Ordner: Image (1234.plt)
Kann mir hier einer ein Script basteln ? Vielen Dank
Hier die Struktur der Zip Dateien
Ordner: Plot (Hier liegeben *.Tiff Dateien)
Ordner: Image (Hier liegt eine Datei mit zB. dem Namen 1234.plt)
Jetzt soll die Datei entpackt werden und der Dateiname der .plt Datei als Prefix mit einem Punkt vor die Tiff Dateien geschrieben werden.
So sollte es entpakt dann aussehen (in C:\Unzip).
Ordner: Plot (1234.abc.Tiff, 1234.def.Tiff, usw.)
Ordner: Image (1234.plt)
Kann mir hier einer ein Script basteln ? Vielen Dank
Please also mark the comments that contributed to the solution of the article
Content-Key: 617235
Url: https://administrator.de/contentid/617235
Printed on: May 6, 2024 at 02:05 o'clock
3 Comments
Latest comment
PowerShell
Steffen
[Reflection.Assembly]::LoadWithPartialName('System.IO.Compression.FileSystem') | Out-Null
$src = 'C:\zip'
$dst = 'C:\unzip'
gci $("$src\*.zip") -file | %{
$zip = [IO.Compression.ZipFile]::OpenRead($_)
$prefix = $zip.Entries.Name | sls -pattern '^(.+)\.plt$' | %{$_.matches.groups[1].value} | select -f 1
$tiffs = $zip.Entries.Name | sls -pattern '^.+\.tiff$' | %{$_.matches.value}
$zip.Dispose()
Expand-Archive $_ -DestinationPath $dst -Force
$tiffs | %{ren $("$dst\Plot\$_") $("$prefix.$_")}
}