Quersummen (Checksum), eine Date pro Ordner

German support forum

Moderators: white, Hacker, Stefan2

Post Reply
User avatar
Tahattmeruh
Senior Member
Senior Member
Posts: 232
Joined: 2003-05-16, 13:35 UTC

Quersummen (Checksum), eine Date pro Ordner

Post by *Tahattmeruh »

Ich habe die Möglichkeit pro Datei eine Datei anzulegen oder einmal über alles was ich ausgewählt habe.
Ich möchte z.B. im Hauptverzeichnis meiner externen Festplatte das Tool starten und es sollte pro Ordner in dem Dateinen liegen eine Quersummendatei erstellt werden. Gibt es dafür eine einfache Möglichkeit?
User avatar
Stefan2
Power Member
Power Member
Posts: 4159
Joined: 2007-09-13, 22:20 UTC
Location: Europa

Rekursiv Unterordner Kommandozeilentool PoSH Sum MD5

Post by *Stefan2 »

 

Dies würde ich mittels eines Kommandozeilen Tools und einem Skript,
welches in einer Schleife die Unterordner abklappert, realisieren.

Etwa folgendermaßen:

- Downloade ein MD5 Hash Tool, ich habe hier FSUM von SlavaSoft (www.slavasoft.com/fsum/).
- lege die fsum.exe in den Pfad (oder in das Hauptverzeichnis)
- Öffne eine PowerShell und navigiere zu deinem Ordner
(Oder erstelle einen Button in TC mit dem Command: PowerShell. Dann öffnes sich PoSH automatisch mit dem aktuellen Ordner.)

- Tippe (oder Copy&Paste) das Folgende ein:

Für alle Unterordner:
Dir -rec | %{if ($_.PSisContainer){$FLD=$_.FullName; .\fsum -d"$FLD" *.* > "$FLD\_CheckSumme.txt"}}


Für den aktuellen Ordner:
Dir | %{ .\fsum *.* > ".\_CheckSumme.txt"}



Oder Beides zusammen (durch Semikolon getrennt):
Dir -rec | %{if ($_.PSisContainer){$FLD=$_.FullName; .\fsum -d"$FLD" *.* > "$FLD\_CheckSumme.txt"}} ; Dir | %{ .\fsum *.* > ".\_CheckSumme.txt"}





HTH? :D


- - -

Nachtrag:

Erzeuge pro ausgewählter Datei eine eigene checksum-Datei:

Output: OrigName.ext _CheckSumme.txt
GC '%WF'|ForEach{&"""$($env:Commander_Path)\Tools\fsum.exe""" '-jnc' $_ > """$_ _CheckSumme.txt"""}

Oder
Output: ___CheckSumme_OrigName.ext.txt
GC '%WF'|ForEach{&"""$($env:Commander_Path)\Tools\fsum.exe""" '-jnc' $_ > ('___CheckSumme_'+"""$_"""+'.MD5')}

(Bei der Ausführung vom TC aus muss man die "..." Anführungszeichen verdreifachen: """...""".
Oder verwende einfache '...' Anführungszeichen , aber auch nur, wenn keine $var expandiert werden muss)

- - -


Erklärung:
Dir == Get-ChildItem == fast wie das DOS dir
-rec == -Recurse == Rekursive alle Unterordner
PSisContainer == IsOrdner?
% == ForEach $_ DO {...}
$_ == ist das aktuelle Object, hier: Ordner oder Datei
> == Set-Content = Schreibe in Datei

Zur Benutzung in einem TC button muss man das Prozent-Zeichen verdoppeln und auch die Quotes escapen (verdoppeln und verdreifachen).
SlavaSoft Optimizing Checksum Utility - fsum 2.52.00337
Implemented using SlavaSoft QuickHash Library <www.slavasoft.com>
Copyright (C) SlavaSoft Inc. 1999-2007. All rights reserved.


Usage: fsum.exe <OPTIONS>... <FILE>...

Options:

-c or --check - check sums against given list
-d<directory> - set working directory
-jf - print only failed lines while checking
-jm - use MD5 format
-js - use SFV format
-jnc - supress comments
-r - recurse subdirectories
-s or --status - don't output anything, status code shows success
-w or --warn - warn about improperly formatted checksum lines

-md2 - include MD2 algorithm
-md4 - include MD4 algorithm
-md5 - include MD5 algorithm
-sha1 - include SHA-1 algorithm
-sha256 - include SHA-2( 256 ) algorithm
-sha384 - include SHA-2( 384 ) algorithm
-sha512 - include SHA-2( 512 ) algorithm
-rmd - include RIPEMD-160 algorithm
-tiger - include TIGER algorithm
-panama - include PANAMA algorithm
-adler - include ADLER32 algorithm
-crc32 - include CRC32 algorithm
-edonkey - include EDONKEY algorithm
Post Reply