Button mit MD5 Kommandozeilen Programm

German support forum

Moderators: white, Hacker, Stefan2

Post Reply
Colossus
Junior Member
Junior Member
Posts: 6
Joined: 2016-08-15, 17:18 UTC
Location: Germany

Button mit MD5 Kommandozeilen Programm

Post by *Colossus »

Hallo Leute,

ich habe da ein kleines Problem mit der buttonbar und einem Kommandozeilen Programm.

Und zwar wie kann man, die markierten Dateien namen von total commander in die Kommandozeile kopieren, damit ein cmd tool diese verarbeiten kann.

Ich habe auch schon die Hilfe benutzt aber leider funktioniert das leider nicht so wie gewolt.

Hier mal der Syntax mit dem es in der cmd funktioniert.

Die Dateien die markiert sind

xxLTmI8t.part1.rar
xxLTmI8t.part2.rar

der cmd Befehl:

md5sum c:\Server\xxLTmI8t.*.rar > c:\Server\xxLTmI8t.md5

ich weiß das der total commander eine Quersummen Funktion hat, aber ich würde gerne das mit der cmd machen.

bin noch etwas neu in der Benutzung von der Buttonbar

Ich bin euch für jede Hilfe dankbar.
User avatar
Stefan2
Power Member
Power Member
Posts: 4153
Joined: 2007-09-13, 22:20 UTC
Location: Europa

Post by *Stefan2 »

Versuch's mal so:

CMD: md5sum
PARAM: "c:\Server\xxLTmI8t.*.rar" > "c:\Server\xxLTmI8t.md5"
START:
ICON: md5sum.exe
TOOLTIP: md5sum






 
User avatar
Stefan2
Power Member
Power Member
Posts: 4153
Joined: 2007-09-13, 22:20 UTC
Location: Europa

Post by *Stefan2 »

Poste mal deinen Button:

- Rechtsklick auf den Button
- Kopieren
- Hier einfügen






 
User avatar
ZoSTeR
Power Member
Power Member
Posts: 1008
Joined: 2004-07-29, 11:00 UTC

Post by *ZoSTeR »

Es kommt darauf an in welcher Form das Tool die Parameter entgegennimmt.

Mit Wildcards (*) kommt man in diesem Falle nicht weit, bzw man ist extrem unflexibel.

TC kann die einzelnen ausgewählten Dateinamen übergeben oder eine Textdatei mit den Namen.

Welches md5sum verwendest Du?
Colossus
Junior Member
Junior Member
Posts: 6
Joined: 2016-08-15, 17:18 UTC
Location: Germany

Post by *Colossus »

Vielen dank für eure Antworten.

das verwendete tool ist hashutils von hashcheck

http://code.kliu.org/hashcheck/faq.html

ab Can HashCheck be invoked from the command line?

man kann auch die Dateien ohne Wildcards (*) übergeben.
User avatar
sqa_wizard
Power Member
Power Member
Posts: 3860
Joined: 2003-02-06, 11:41 UTC
Location: Germany

Post by *sqa_wizard »

Wenn ich das richtig verstehe, gibt md5sum.exe den hash aus dem Inhalt aller übergebenen Dateinamen.

Also aus dem Beispiel oben

Code: Select all

md5sum c:\Server\xxLTmI8t.*.rar > c:\Server\xxLTmI8t.md5
ergibt sich als Befehl im TC:

Code: Select all

hash aus "xxLTmI8t.part1.rar"
hash aus "xxLTmI8t.part2.rar"
hash aus ">"
hash aus "c:\Server\xxLTmI8t.md5"
Alle übergeben Parameter werden als Dateiname interpretiert.
Also auch ">"!

Möchte man ">" als Umleitungszeichen interpretieren, muss man den Kommandozeilenprozessor "cmd.exe" verwenden.
#5767 Personal license
User avatar
Stefan2
Power Member
Power Member
Posts: 4153
Joined: 2007-09-13, 22:20 UTC
Location: Europa

Post by *Stefan2 »

ZoSTeR wrote:Es kommt darauf an in welcher Form das Tool die Parameter entgegennimmt.
Richtig, aber...

er sagte ja "mit dem es in der cmd funktioniert"
Colossus wrote:--- Hier mal der Syntax mit dem es in der cmd funktioniert.
---
der cmd Befehl:

md5sum c:\Server\xxLTmI8t.*.rar > c:\Server\xxLTmI8t.md5
----


Aber irgendetwas stimmt da nicht, .... jetzt sagt er:
Colossus wrote:...

das verwendete tool ist hashutils von hashcheck

http://code.kliu.org/hashcheck/faq.html
----
und die FAQs zeigen eine ganz andere Syntax
Can HashCheck be invoked from the command line?

As a shell extension, HashCheck was designed to be integrated into and invoked from Windows Explorer, so command-line support is very limited.

Verifying a checksum file: The following command will open a checksum file for verification in the HashCheck GUI:

rundll32 %WinDir%\System32\ShellExt\HashCheck.dll HashVerify_RunDLL example.md5

Vielleicht wären andere Tools besser geeignet.
Hier hatte ich mal ein paar aufgelistet: http://ghisler.ch/board/viewtopic.php?t=13422

Ich hatte aktuell keinen Bedarf an solchen Tools, somit kann ich keines empfehlen. Aber ich glaube, FSum war immer ganz gut.



 
Colossus
Junior Member
Junior Member
Posts: 6
Joined: 2016-08-15, 17:18 UTC
Location: Germany

Post by *Colossus »

habe nur *.rar verwendet damit ich nicht, die Datei xxLTmI8t.part2.rar auch mit angeben muss.

wenn zum Beispiel die Dateien xxLTmI8t.part1.rar bis xxLTmI8t.part4.rar verwendet werden, durch die Angabe von xxLTmI8t.*.rar werden alle Dateien mit part1 bis part4 verwendet.

Die Datei xxLTmI8t.md5 ist die Ausgabedatei in der alle Quersummen der einzelendateien gespeichert wird.
Colossus
Junior Member
Junior Member
Posts: 6
Joined: 2016-08-15, 17:18 UTC
Location: Germany

Post by *Colossus »

Wie ZoSTeR geschrieben hat ging es mir darum, wie ich in TC die einzelnen ausgewählten Dateinamen übergeben kann und wen möglich auch die Ausgabe Dateiennamen.


Die Im TC integrierte Quersummen Funktion, übergibt beim erzeugen den Dateiennamen, aber Sobald man mehrere Dateien hat, wird immer der Ordner Name verwendet und man muss den Namen selber eingeben.
User avatar
ZoSTeR
Power Member
Power Member
Posts: 1008
Joined: 2004-07-29, 11:00 UTC

Post by *ZoSTeR »

Versuch mal dieses auf nem Button:

Kommando:

Code: Select all

cmd /c C:\PfadZu\md5sum.exe
Parameter:

Code: Select all

%S >"%P%O.md5"
Startpfad: leer


Die Frage ist, ob es dir primär um die MD5 Erstellung geht oder eher um die Parameterübergabe.

Hatte hier schon mal ein MD5-Skript erstellt, welches ich entsprechend anpassen könnte.
Colossus
Junior Member
Junior Member
Posts: 6
Joined: 2016-08-15, 17:18 UTC
Location: Germany

Post by *Colossus »

ZoSTeR vielen dank es funktioniert du bist der beste.

Dein Script habe ich mir vor ein paar tage mal angeschaut, wenn du dein MD5-Skript entsprechend anpassen könnte wäre ich dir sehr dankbar.
User avatar
ZoSTeR
Power Member
Power Member
Posts: 1008
Joined: 2004-07-29, 11:00 UTC

PowerShell: 'CreateChecksum.ps1' SHA1 MD5

Post by *ZoSTeR »

Hier das PowerShell Skript. Werds wohl nochmal gesondert und besser dokumentiert posten wenn ich Zeit und Lust habe ;)

-sha1 ist optional und kann entfernt werden für MD5

Für dem Namen der Checksummendatei wird der Basisname der ersten übergebenen Datei genutzt. Rar-Dateien mit "partX" werden gesondert behandelt.

Code: Select all

# TC Button Parameter:
# powershell.exe
# -NoExit -ExecutionPolicy remotesigned -Command "&{&'C:\PathTo\CreateChecksum.ps1' -sha1 -listFile '%UL'}"

Param(
    [Parameter(Mandatory=$True)]
    [ValidateNotNullOrEmpty()]
    [string]$listFile,
    [switch]$sha1
)

if ($sha1)
{
    $algo = "SHA1"
    $extensionOutputFile = ".sha"
}
else
{
    $algo = "MD5"
    $extensionOutputFile = ".md5"
}

[array]$contentListFile = Get-Content -LiteralPath $listFile
$itemFirstFile = Get-Item -LiteralPath $contentListFile[0]

if ($itemFirstFile.Name -match "(?<BaseName>.+)(?<Extension>\.part\d+\.rar)")
{
    $outputFile = $Matches.BaseName
}
else
{
    $outputFile = $itemFirstFile.BaseName
}

$outputFolder = $itemFirstFile.DirectoryName
$outputPath = $outputFolder + '\' + $outputFile + $extensionOutputFile

if (Test-Path -LiteralPath $outputPath)
{
    Write-Warning ("`n" + $outputPath + " already exists. Aborting!")
    Exit
}

$numberOfFiles = $contentListFile.Count
$timeStart = Get-Date
$c = 0

foreach ($filePath in $contentListFile)
{
    $c += 1
    Write-Progress -Activity "Calculating $algo checksum for $numberOfFiles files..." -Status "$c/$numberOfFiles $filePath" -PercentComplete ($c * 100 / $numberOfFiles)
    $hashFile = Get-FileHash -LiteralPath $filePath -Algorithm $algo
    $fileName = Split-Path $filePath -Leaf
    $finalString = $hashFile.Hash + ' *' + $fileName
    Out-File -LiteralPath $outputPath -InputObject $finalString -Append
}

$timeEnd = Get-Date
$timeSpan = New-TimeSpan -Start $timeStart -End $timeEnd
Write-Output ("`nDone. Duration: " + $timeSpan.ToString("hh\:mm\:ss\,fff"))
Post Reply