Hallo!
Ich brauche beim Entpacken von Archiven (RAR) eine bestimmte (normalerweise aufsteigend sortierte) Reihenfolge, in der die einzelnen Dateien nacheinander ins Zielverzeichnis geschrieben werden.
Nun habe ich gefunden, man solle die Pausenfunktion im Hintergrund- Transfer- Manager nutzen und dort die Dateien in die entsprechende Reihenfolge bringen. Aber eh der HTM aufgerufen ist und die Pause aktiviert wurde, sind schon die ersten Dateien falsch entpackt; es sind teilweise recht kleine Dateien.
Was gibt es da für Möglichkeiten?
Kann ich den HTM gleich im Pausenmodus starten, sobald ich "Entpacken" wähle?
Oder kann man die Entpack- (Kopier-) Reihenfolge auch anders beeinflussen?
Mit freundlichen Grüßen
Geigolino
Archiv entpacken in bestimmter Reihenfolge
Moderators: Hacker, Stefan2, white
Re: Archiv entpacken in bestimmter Reihenfolge
Darf ich fragen, wozu das gut sein soll? Davon abgesehen hängt es bei soliden RAR-Archiven davon ab, in welcher Reihenfolge die Dateien gepackt wurden - in derselben Reihenfolge werden sie wieder entpackt, weil die Dateien als Datenstrom vorliegen und nur in dieser Reihenfolge gelesen werden können.Geigolino wrote:Ich brauche beim Entpacken von Archiven (RAR) eine bestimmte (normalerweise aufsteigend sortierte) Reihenfolge, in der die einzelnen Dateien nacheinander ins Zielverzeichnis geschrieben werden.
Aber selbst wenn die vorliegenden Archive nicht solid sind, welchen Sinn hat das Unterfangen? Sortierung im TC kann es ja nicht sein. Reihenfolge auf dem Datenträger kann man normalerweise sowieso nicht gezielt beeinflussen. Irgendwie fehlt mir wohl die Phantasie

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Hallo Dalai,
das ist ganz schnell erklärt: Mein Radio kann MP3-Dateien vom USB- Stick wiedergeben, richtet sich aber bei der Abfolge der Wiedergabe ausschließlich nach der Reihfolge, wie die Dateien auf den Stick kopiert wurden.
Nun kann ich dies händisch bewerkstelligen, oder - wie ich hoffe - in einem Ritt beim Kopieren von meiner HD oder beim Entpacken aus einem Archiv.
Gruß
Geigolino
das ist ganz schnell erklärt: Mein Radio kann MP3-Dateien vom USB- Stick wiedergeben, richtet sich aber bei der Abfolge der Wiedergabe ausschließlich nach der Reihfolge, wie die Dateien auf den Stick kopiert wurden.
Nun kann ich dies händisch bewerkstelligen, oder - wie ich hoffe - in einem Ritt beim Kopieren von meiner HD oder beim Entpacken aus einem Archiv.
Ich kann doch aber im TC einzelne Dateien aus dem Archiv mit F5 ins andere Fenster entpacken, da müßte es doch auch bei mehreren Dateien möglich sein, die Reihenfolge festzulegen. (Das Tempo ist mir dabei ziemlich schnuppe.) Ich habe es auch schon mit einem AHK- Skript versucht, klappt prinzipiell auch, komme aber mit dem Warten auf die Erledigung je Datei nicht ganz klar.in derselben Reihenfolge werden sie wieder entpackt, weil die Dateien als Datenstrom vorliegen und nur in dieser Reihenfolge gelesen werden können
Gruß
Geigolino
Verstehe. Ein sehr ähnliches Problem wurde schonmal diskutiert (da ging's um Kopieren statt Entpacken).Geigolino wrote:das ist ganz schnell erklärt: Mein Radio kann MP3-Dateien vom USB- Stick wiedergeben, richtet sich aber bei der Abfolge der Wiedergabe ausschließlich nach der Reihfolge, wie die Dateien auf den Stick kopiert wurden.
Bei soliden Archiven nicht. TC liest bei solchen Archiven solange, bis er die gewünschte Datei erreicht hat und entpackt erst dann.Ich kann doch aber im TC einzelne Dateien aus dem Archiv mit F5 ins andere Fenster entpacken, da müßte es doch auch bei mehreren Dateien möglich sein, die Reihenfolge festzulegen.in derselben Reihenfolge werden sie wieder entpackt, weil die Dateien als Datenstrom vorliegen und nur in dieser Reihenfolge gelesen werden können
Schau erstmal nach, welche Art von Archiven du hast (solide oder nicht).
Außerdem kannst du folgendes probieren, was aber wohl nur bei nicht-soliden Archiven funktionieren wird (sofern überhaupt): Archiv im TC öffnen, Sortierung setzen und dann entpacken. Bringt natürlich nix, wenn du eine Reihenfolge haben willst, die mit einer Spaltensortierung nicht zu erreichen ist.
MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Na dann hab ich unsolide Archive - das paßt zu mir...Dalai wrote:Bei soliden Archiven nicht. TC liest bei solchen Archiven solange, bis er die gewünschte Datei erreicht hat und entpackt erst dann.

Da mußte ich doch erst mal guckeln, was das überhaupt ist - und wie man die Art bestimmt, hab ich dabei noch nicht gefunden.Schau erstmal nach, welche Art von Archiven du hast (solide oder nicht).
Leider funktioniert das nicht, hatte ich schon vorher getestet.Archiv im TC öffnen, Sortierung setzen und dann entpacken.
So werde ich mir wohl doch etwas selber stricken müssen.
MfG
Geigolino
Gar nicht so schwer: WinRAR oder 7zip zeigen das an, wenn man in die Eigenschaften des Archivs reinschaut. In der Hilfe von WinRAR ist auch erklärt, was ein solides Archiv ist und welche Vor- und Nachteile es hat. Auch bei Wikipedia gibt's einen Artikel dazu.Geigolino wrote:Da mußte ich doch erst mal guckeln, was das überhaupt ist - und wie man die Art bestimmt, hab ich dabei noch nicht gefunden.Schau erstmal nach, welche Art von Archiven du hast (solide oder nicht).
So sieht's wohl aus. Idee: gewünschte Reihenfolge durch Spaltensortierung herstellen, Markierung speichern und dann eine for-Schleife in Batch laufen lassen, die diese Listendatei verarbeitet und dabei jede Datei einzeln ins gewünschte Ziel entpackt. Das Skript kann man dann auf einen Button legen.So werde ich mir wohl doch etwas selber stricken müssen.
MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Hallo Dalai,
ich habe mich an einem AHK- Skript versucht, hier das Ergebnis:Das ist sicher verbesserungswürdig, aber es läuft erst mal.
Was ich nicht verstehe, daß der direkt auf den TC wirkende Befehl
SendMessage 1075, 3101, 0, , ahk_class TTOTAL_CMD
viel langsamer arbeitet als das gesendete F5...
Vielleicht kann ja mal jemand etwas mit dem Skript anfangen, daher poste ich es.
Mit freundlichen Grüßen und Dank für die Hilfe
Geigolino
ich habe mich an einem AHK- Skript versucht, hier das Ergebnis:
Code: Select all
#k:: ;startet mit WIN-Taste + k
;##########################################################
;# #
;# Dateien müssen in einem Block markiert sein! #
;# #
;##########################################################
; Markierte Dateien werden in der Reihenfolge des Fensters
; kopiert bzw. bei geöffneten Archiven
; in das andere Fenster einzeln entpackt
IfWinActive, ahk_class TTOTAL_CMD
{
Zaehler=0
ControlGetFocus, Fenster
If (Fenster = "TMyListBox2" Or Fenster = "TMyListBox1") ; kontrollieren, ob TC- Fenster aktiv
{
SendMessage 1075, 2017, 0, , ahk_class TTOTAL_CMD ;markierte Dateinamen in die Zwischenablage kopieren
QuelleDateien = %Clipboard%
Loop, Parse, QuelleDateien, `n, `r ;markierte Dateien werden gezählt
{
If A_index = 1 ;erste Datei merken
{
ErsteDatei = %A_LoopField%
}
Zaehler = %A_Index%
}
WinActivate ahk_class TTOTAL_CMD
sleep 200
send ^{NumpadSub} ;Markierung aufheben - letzte markierte Datei bleibt aktiv
SendMessage 1075, 2017, 0, , ahk_class TTOTAL_CMD ;aktuellen Dateinamen in Zwischenablage
If Not ErsteDatei = Clipboard
{
Hoch := Zaehler - 1
send {UP %Hoch%} ;Zeiger auf erste Datei hochsetzen
}
Loop, %Zaehler% ; Alle Dateien werden nun einzeln kopiert
{
;SendMessage 1075, 3101, 0, , ahk_class TTOTAL_CMD ;in anderes Fenster kopieren
send {F5} ;ist seltsamerweise schneller als obenstehende Zeile
send {ENTER}
WinWaitClose ahk_class TDLGUNZIP
WinWaitClose ahk_class TDLG2FILEACTIONMIN
WinWaitActive, ahk_class TTOTAL_CMD
send {DOWN} ;zur nächsten Datei im Fenster
}
soundbeep
}
exit
}
Was ich nicht verstehe, daß der direkt auf den TC wirkende Befehl
SendMessage 1075, 3101, 0, , ahk_class TTOTAL_CMD
viel langsamer arbeitet als das gesendete F5...
Vielleicht kann ja mal jemand etwas mit dem Skript anfangen, daher poste ich es.
Mit freundlichen Grüßen und Dank für die Hilfe
Geigolino