Ich habe eine große Menge an Dateien (> 30K), die alle in einem Verzeichnis gespeichert sind und neu organisiert und archiviert werden müssen.Batch oder Powershell: Dateien mit ähnlichen Namen archivieren
Dateien werden wie (nicht chronologische Reihenfolge) genannt:
- M056811-01-.txt
- M056811-02-.txt
- M056811-03-.txt
- M956782 -01-.txt
- M956782-02-.txt ...
Ich möchte Dateien, die zusammen gehören (haben dasselbe Präfix), zu einer Zip-Datei archivieren.
- M056811.zip
- M956782.zip ...
Gibt es eine Möglichkeit achive dies mit einigen Batch oder Powershell-Scripting: Welche in Art führen würde.
Ich bin nicht sehr fortgeschritten im Scripting. Abgesehen von der Antwort selbst (wenn es eine Lösung gibt) würde ich wirklich gerne wissen, dass es funktioniert.
Meine Endlösung (Vielen Dank an David Brabant):
Ich habe das Skript für Remote-dir-Nutzung. Es besteht keine Notwendigkeit, das Skript innerhalb desselben Verzeichnisses zu platzieren. Bearbeiten Sie einfach die ersten beiden Variablen und Sie sollten gut gehen.
$dirpath = "<Enter Directorypath here>"
$offsetlength = 6
$pathlength = $dirpath.Length
$absolutelength = $pathlength + $offsetlength
dir $dirpath | group { $_.FullName.Substring(0, $absolutelength) } | %{
$subset = $_
$subset.Group | %{
Compress-Archive $_ $subset.Name -Update
}
}
SO ist kein kostenloser Code-Schreibservice! Probieren Sie es selbst aus, und wenn Sie stecken bleiben, kommen Sie hierher zurück, beschreiben Sie genau, was Sie erreichen möchten und was Ihr Code tatsächlich tut. – aschipfl