Zu Hauptinhalten wechseln
Procore

Vollständige Ordner- und Dateinamen für Projektarchive unter Windows wiederherstellen

Hintergrund

Wenn Sie das Projektarchiv-Tool zum Extrahieren von Projektarchiven verwenden, können Probleme mit langen Dateipfaden und verschachtelten Unterordnerstrukturen auftreten, die den standardmäßigen Windows-Pfadgrenzwert von 260 Zeichen überschreiten können. Um beschädigte Archivdateien und Extraktionsfehler zu vermeiden, schneidet das Projektarchiv-Tool Ordner- und Dateinamen während der Extraktion automatisch ab.

Damit Sie die vollständigen Ordner- und Dateinamen nach der Extraktion wiederherstellen können, enthält Procore eine CSV-Pfadzuordnungsdatei (path-map.csv) innerhalb des extrahierten Archivordners. In dieser Datei wird jeder abgeschnittene Name zusammen mit dem entsprechenden vollständigen Namen aufgelistet. Sie können die CSV-Datei zusammen mit einem standardmäßigen PowerShell-Skript verwenden, um schnell alle vollständigen Elementnamen wiederherzustellen.

Wichtige Hinweise

  • Zusätzliche Informationen:

    • Führen Sie das PowerShell-Skript nicht auf einer nicht extrahierten ZIP-Datei Archivdatei.

    • Schließen Sie alle geöffneten Dateien oder Dokumente, die sich im extrahierten Archivordner befinden, bevor Sie das PowerShell-Skript ausführen, um Fehler beim Sperren von Dateien zu vermeiden.

    • Das mehrfache Ausführen des PowerShell-Skripts ist sicher, wenn bestimmte Ordner- oder Dateinamen bereits teilweise wiederhergestellt wurden.

Öffnen Sie den extrahierten Archivordner

  1. Entpacken Sie Ihre heruntergeladenen ZIP-Datei Archivdatei.

  2. Öffnen Sie den entpackten Archivordner im Datei-Explorer.

  3. Stellen Sie sicher, dass die path-map.csv Datei im Archivordner vorhanden ist.
    Hinweis: Diese CSV-Datei enthält drei Spalten: Type, ShortenedNameund OriginalName.

Öffnen Sie PowerShell im extrahierten Archivordner

 Wichtig
Sie müssen PowerShell innerhalb des extrahierten Archivordnerpfads öffnen. Wenn es von einem anderen Standort aus geöffnet wird, findet das PowerShell-Skript Ihre Dateien nicht path-map.csv.

Wählen Sie eine der folgenden Methoden:

Option A: Adressleiste (empfohlen)

  1. Öffnen Sie in Ihrem Windows-System den Datei-Explorer.

  2. Navigieren Sie im Datei-Explorer in den extrahierten Archivordner, so dass die path-map.csv Datei sichtbar ist.

  3. Klicken Sie auf einen leeren Fläche in der Adressleiste am oberen Rand des Fensters (in dem der Dateipfad aufgeführt ist).

  4. Geben Sie ein und drücken Sie powershell die Eingabetaste.
    Das Windows PowerShell-Fenster wird geöffnet und zielt auf den Pfad des extrahierten Archivordners ab.

Option B: Kontextmenü

  1. Öffnen Sie in Ihrem Windows-System den Datei-Explorer.

  2. Öffnen Sie den extrahierten Ordner im Datei-Explorer.

  3. Halten Sie die Umschalttaste gedrückt und klicken Sie dann mit der rechten Maustaste auf einen leeren Fläche im Ordnerfenster.

  4. Wählen Sie hier PowerShell-Fenster öffnen aus (unter Windows 11 wählen Sie Im Terminal öffnen).

Überprüfen Sie Ihr Adressbuch

Geben Sie im PowerShell-Fenster die Eingabetaste ein, und drücken Sie dir die Eingabetaste.

  • Wenn path-map.csv in der Ausgabe aufgeführt ist, befinden Sie sich im richtigen Adressbuch.

  • Wenn path-map.csv dies nicht aufgeführt ist, navigieren Sie zu dem Ordner, indem Sie den folgenden Befehl eingeben (und ersetzen Sie den Pfad durch Ihren tatsächlichen Verzeichnispfad):

    • cd "C:\voller\Pfad\zum\Ihren-extrahierten Ordner"

Ausführen des PowerShell-Skripts

  1. Kopieren Sie den folgenden Skriptblock:

    • # Ausführen aus dem Inneren des extrahierten Ordners (der path-map.csv enthält)
      $map = Import-CSV ".\path-map.csv"

      # Ordner zuerst umbenennen (tiefste Übereinstimmungen zuerst, damit übergeordnete Umbenennungen untergeordnete Pfade nicht beschädigen)
      $map | Where-Objekt { $_. Geben Sie -eq 'Ordner' } | ForEach-Object {
      $short = $_. ShortenedName; $orig = $_. Ursprünglicher Name
      Get-ChildElement -Adressbuch -Recurse |
      Where-Objekt { $_. Name -eq $short } |
      sort-object { $_. FullName.Length } -absteigend |
      ForEach-Object { Rename-Element -LiteralPath $_. FullName -NewName $orig }
      }

      # Benennen Sie dann Dateien um
      $map | Where-Objekt { $_. Geben Sie -eq 'Datei' } | ForEach-Object {
      $short = $_. ShortenedName; $orig = $_. Ursprünglicher Name
      Get-ChildElement -File -Recurse |
      Where-Objekt { $_. Name -eq $short } |
      ForEach-Object { Rename-Element -LiteralPath $_. FullName -NewName $orig }
      }

  2. Fügen Sie den Code in Ihr aktives PowerShell-Fenster ein, und drücken Sie die EINGABETASTE.

  3. Sobald die Ausführung abgeschlossen ist, werden alle Ordner und Dateien innerhalb des extrahierten Archivordners mit ihren vollständigen Namen angezeigt.