h41msh1c0r
Goto Top

Powershell Verzeichnisstruktur einlesen und hashing

Hi@PS Profis

gci -Recurse -Directory C:\Quelle

Liefert ja alles was unter C:\Quelle und tiefer zu finden ist.

Kann ich den Pfad statt C:\Quelle als .\ im Ergebnis anzeigen lassen? Sprich ohne Angabe von allem was über dem eingelesenen Ordner im Pfad steht?

In der Ansicht soll später noch mit rein:
- Dateigröße, Rechte neben der gekürzten Pfadangabe

Hintergrund:

Der Verzeichnisbaum(Treefile) soll in einer Textfile landen über das dann eine Checksumme gebildet wird.
Nur bei Veränderungen in dem Verzeichnis wird erneut das Treefile erzeugt inkl. Checksumme. Das beides landet ebenfalls auf dem Server.

Am Ende des Tages kann ich dann die lokal liegenden Daten(Ordner-Root kann ein anderer sein) über die Checksumme auf Änderungen vergleichen ohne
das ich die kompletten Verzeichnisse durchlaufen muss. Je nach Anbindung wird das dann recht lange dauern. Die Daten laufen nur vom Server zum Client. Sollte der Nutzer dennoch Probleme haben weil lokal was abhanden gekommen ist kann er den Kopiervorgang(das dauert ^^) auch manuell anstoßen.

Warum das Ganze?

Je nachdem wie das Laufwerk gemapped wurde kann die Quelle z:\Quelle oder y:\Quelle oder xyz:\<unsereQuelle> heißen.
Würden die Laufwerke immer identisch gemapped werden, davon kann ich allerdings nicht ausgehen, könnte ich mir das Ganze sparen.

Gruß vom H41mSh1C0r

Content-ID: 290383

Url: https://administrator.de/forum/powershell-verzeichnisstruktur-einlesen-und-hashing-290383.html

Ausgedruckt am: 16.04.2025 um 17:04 Uhr

122990
Lösung 122990 08.12.2015 aktualisiert um 14:27:15 Uhr
Goto Top
gci c:\quelle -Recurse -File | %{$_.Fullname.replace('C:\quelle','.')}  

Gruß grexit
H41mSh1C0R
H41mSh1C0R 08.12.2015 um 14:20:01 Uhr
Goto Top
Hi grexit,

das ging ja fix. Schonmal danke.

Für jede Datei gibt es allerding jetzt nur die gekürzte Pfadangabe.

.\Workbench\Projects\Packaging
.\Workbench\Projects\Packaging
.\Workbench\Projects\Packaging
.\Workbench\Projects\Packaging\Daten
.\Workbench\Projects\Packaging\Daten

Statt:
.\Workbench\Projects\Packaging\Datei1.txt
.\Workbench\Projects\Packaging\Datei2.txt
.\Workbench\Projects\Packaging\Datei3.txt
.\Workbench\Projects\Packaging\Daten\Datei4.txt
.\Workbench\Projects\Packaging\Daten\Datei5.txt

Gruß H41mSh1c0r
122990
Lösung 122990 08.12.2015 aktualisiert um 14:27:11 Uhr
Goto Top
Ach so na dann nimmst du statt "DirectoryName" einfach Fullname face-wink hättest du dir aber auch eigentlich selber herleiten können ...
H41mSh1C0R
H41mSh1C0R 08.12.2015 um 14:27:08 Uhr
Goto Top
Hab ich auch grad nachdem ich die Liste nach $_. durchgegangen bin.
Da war das jucken nach Fragen schneller als kurz der Bequemlichkeit entgegenzuwirken und selber nachzuschauen.

Trotzdem dir danke für deine Hilfe. =)