x GB auswählen - Auswahl wie?

German support forum

Moderators: white, Hacker, Stefan2

Post Reply
tc_fun
Senior Member
Senior Member
Posts: 208
Joined: 2015-12-05, 16:47 UTC

x GB auswählen - Auswahl wie?

Post by *tc_fun »

Hallo,

in einem Verzeichnis ohne Unterverzeichnisse befinden sich zum Beispiel 240 GB. Ich möchte diese Daten auf mehrere Laufwerke verschieben, welche nur jeweils über 30 GB verfügt .

Wie kann ich mit dem Total Commander automatisch aus dem Start-Verzeichnis optimiert maximal 30 GB an Daten markieren, um die zum Beispiel optimal auf mehrere USB-Sticks aufteilen zu können?

Danke und Gesundes 2021
User avatar
Dalai
Power Member
Power Member
Posts: 9409
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Re: x GB auswählen - Auswahl wie?

Post by *Dalai »

Unter der Annahme, dass das Ziel ein Transfer der Daten sein soll, ist wohl der sinnvollste und einfachste Weg das Splitten bzw. Packen als Multivolume-Archiv (mit WinRAR oder 7-zip) mit entsprechender Größenangabe der Einzelteile. Die Kompression kann man dabei entweder stark runterdrehen oder ganz deaktivieren, so dass wirklich nur die Dateien in größere Teile zusammengefügt werden.

Grüße
Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
tc_fun
Senior Member
Senior Member
Posts: 208
Joined: 2015-12-05, 16:47 UTC

Re: x GB auswählen - Auswahl wie?

Post by *tc_fun »

Danke, erneutes Komprimieren würde erheblich Zeit kosten, falls ich Deine Antwort richtig verstanden habe.

Die Dateien sollen nur (optimal) auf mehrere USB-Sticks zum Transport verteilt werden.

Bisher muss ich jeweils 30 GB an Daten markieren, rüber kopieren, dann die nächste 30 GB.

2 Probleme:

a) Die Dateien sind unterschiedlich groß - daher kann ein Programm, welches die Dateien im Verzeichnis an Hand der Dateigröße auswählt, effizienter auf max 30 GB auswählen.

b) ein Automatismus wäre hilfreich, um bestimmte Größenblöcke zu übertragen.

Ich kann z.B. alle Winrar Dateien auswählen, aber wie wähle ich 30 GB an Winrar Dateien und dann die nächsten 30 GB?

Was wäre die Logik dahinter, wenn man sowas in AutoIt programmieren könnte?

Mir reicht auch eine nicht optimierte Variante, wo max 30 GB an Daten ausgewählt werden und dann die nächste 30 GB ...
User avatar
Dalai
Power Member
Power Member
Posts: 9409
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Re: x GB auswählen - Auswahl wie?

Post by *Dalai »

tc_fun wrote: 2021-01-05, 19:28 UTCDanke, erneutes Komprimieren würde erheblich Zeit kosten, falls ich Deine Antwort richtig verstanden habe.
Deswegen schrieb ich ja, dass die Kompression auf die niedrigste Stufe gestellt oder besser komplett deaktiviert werden muss (im WinRAR heißt die Stufe "Speichern"). Dadurch werden die Dateien nur zusammengeworfen, aber nicht komprimiert. Das wird immer noch etwas Zeit kosten, abhängig von der Schreibgeschwindigkeit deiner Datenträger.

Wenn möglich, ist es vielleicht sinnvoller, andere Wege der Datenübertragung zu finden, z.B. Netzwerk, direkt Datenträger umbauen oder ähnliches.

Grüße
Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
Stefan2
Power Member
Power Member
Posts: 4159
Joined: 2007-09-13, 22:20 UTC
Location: Europa

AutoHotkey: x GigaByte auswählen - select amount of x GigaByte

Post by *Stefan2 »

tc_fun wrote: 2021-01-05, 19:28 UTC Mir reicht auch eine nicht optimierte Variante, wo max 30 GB an Daten ausgewählt werden und dann die nächste 30 GB ...
Probiers mal mit einem AutoHotkey script.

Hier eine Holzhammermethode, vielleicht kann es jemand "in schön" umschreiben:

Select-FilesBySize.AHK

Code: Select all

#SingleInstance force

; Select amount of files by filesize
; Stefan 22:43 05.01.2021
; https://www.ghisler.ch/board/viewtopic.php?p=395634#p395634

; 0: create an button:
;Command: "P:\ath to\TOOLs\AHK\AutoHotkey.exe" "P:\ath to\TOOLs\CMDs\Select-FilesBySize.AHK"
;Parameters:
;Icon: "P:\ath to\TOOLs\AHK\AutoHotkey.exe"
;Tooltip: Select-FilesBySize.AHK


; 1: have source in one panel and target in other panel
; 2: select all source files , stay in source panel
; 3: execute this script from above created button
; 4: file size are counted and files with total wanted size are selected
; 5: Use Alt+Tab to switch from msgbox to source panel  
; 6: Use F5 to copy selected files 
; 7: Use Alt+Tab to switch from source panel to msgbox 
; 8: click OK for next selection

;-----------------------------------------------------------------
; vWantedSize = wanted amount of total size
vWantedSize=32212254720 
; 1 Kilobyte (KByte) 1024 Byte. 
; 1 Megabyte (MByte) 1048576 Bytes.
; 1 Gigabyte (GB) 1073741824 Bytes.
; 30 GB = 32212254720 Bytes.
;Problem: files with size bigger than vWantedSize are not processed


;// Store current clipboard content (to restore at the end):
vClipboardStorage := clipboard

;// TC-commands: 
;cm_CopyNamesToClip=2017;Copy filenames to clipboard
;cm_CopyFullNamesToClip=2018;Copy names with full path
SendMessage, 1075, 2018, , , ahk_class TTOTAL_CMD

   vSelectedFiles := clipboard
   Loop,parse, vSelectedFiles, `n, `r
   {
		;cm_ClearAllFiles=3304;Unselect all files
		SendMessage, 1075, 3304, , , ahk_class TTOTAL_CMD

		vCurrFile := A_LoopField 

		;FileGetSize, OutputVar [, Filename, Units] 
		FileGetSize, vFileSize , %vCurrFile%

		;msgbox %vCurrFile%  --- %vFileSize% --- %vTotalSize%

		vTotalSize += vFileSize
		if(vTotalSize < vWantedSize){
			vNewSelection .= vCurrFile . "`r`n"
			vAmount += 1
		}else{
			GoSub, SelectAmountOfFiles
		}

   }

;process the remain files
GoSub, SelectAmountOfFiles


;// Restore clipboard content:
Clipboard := vClipboardStorage
Exit


SelectAmountOfFiles:
			;// PASTE RESULT TO CLIPBOARD:
			Clipboard = %vNewSelection%
			
			;// TC-command: LOAD SELECTION FROM CLIPBOARD: (cm_LoadSelectionFromClip=2033)
			SendMessage, 0x0433, 2033, , , ahk_class TTOTAL_CMD

			MsgBox %vAmount% files with %vTotalSize% bytes`nUse Alt+Tab -- copy selected files -- Use Alt+Tab -- click OK for next selection`n`n`n%vNewSelection%

			vTotalSize=
			vNewSelection=
			vAmount=
			;cm_ClearAllFiles=3304;Unselect all files
			SendMessage, 1075, 3304, , , ahk_class TTOTAL_CMD
Return



Ich habe es nur mit kleineren Dateien getestet.
Im Source-folder sollten nur DATEIEN ausgewählt werden.

 


 
Post Reply