Archiv entpacken in bestimmter Reihenfolge

German support forum

Moderators: Hacker, Stefan2, white

Post Reply
Geigolino
Junior Member
Junior Member
Posts: 55
Joined: 2005-10-24, 14:16 UTC
Location: Markneukirchen

Archiv entpacken in bestimmter Reihenfolge

Post by *Geigolino »

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
User avatar
Dalai
Power Member
Power Member
Posts: 9990
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Re: Archiv entpacken in bestimmter Reihenfolge

Post by *Dalai »

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.
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.

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
Geigolino
Junior Member
Junior Member
Posts: 55
Joined: 2005-10-24, 14:16 UTC
Location: Markneukirchen

Post by *Geigolino »

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.
in derselben Reihenfolge werden sie wieder entpackt, weil die Dateien als Datenstrom vorliegen und nur in dieser Reihenfolge gelesen werden können
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.

Gruß

Geigolino
User avatar
Dalai
Power Member
Power Member
Posts: 9990
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

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.
Verstehe. Ein sehr ähnliches Problem wurde schonmal diskutiert (da ging's um Kopieren statt Entpacken).
in derselben Reihenfolge werden sie wieder entpackt, weil die Dateien als Datenstrom vorliegen und nur in dieser Reihenfolge gelesen werden können
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.
Bei soliden Archiven nicht. TC liest bei solchen Archiven solange, bis er die gewünschte Datei erreicht hat und entpackt erst dann.

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
Geigolino
Junior Member
Junior Member
Posts: 55
Joined: 2005-10-24, 14:16 UTC
Location: Markneukirchen

Post by *Geigolino »

Dalai wrote:Bei soliden Archiven nicht. TC liest bei solchen Archiven solange, bis er die gewünschte Datei erreicht hat und entpackt erst dann.
Na dann hab ich unsolide Archive - das paßt zu mir... :lol:
Schau erstmal nach, welche Art von Archiven du hast (solide oder nicht).
Da mußte ich doch erst mal guckeln, was das überhaupt ist - und wie man die Art bestimmt, hab ich dabei noch nicht gefunden.
Archiv im TC öffnen, Sortierung setzen und dann entpacken.
Leider funktioniert das nicht, hatte ich schon vorher getestet.

So werde ich mir wohl doch etwas selber stricken müssen.

MfG

Geigolino
User avatar
Dalai
Power Member
Power Member
Posts: 9990
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

Geigolino wrote:
Schau erstmal nach, welche Art von Archiven du hast (solide oder nicht).
Da mußte ich doch erst mal guckeln, was das überhaupt ist - und wie man die Art bestimmt, hab ich dabei noch nicht gefunden.
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.
So werde ich mir wohl doch etwas selber stricken müssen.
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.

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
Geigolino
Junior Member
Junior Member
Posts: 55
Joined: 2005-10-24, 14:16 UTC
Location: Markneukirchen

Post by *Geigolino »

Hallo Dalai,

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
}
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
Post Reply