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
x GB auswählen - Auswahl wie?
Moderators: Hacker, Stefan2, white
Re: x GB auswählen - Auswahl wie?
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
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
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
Re: x GB auswählen - Auswahl wie?
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 ...
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 ...
Re: x GB auswählen - Auswahl wie?
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.tc_fun wrote: 2021-01-05, 19:28 UTCDanke, erneutes Komprimieren würde erheblich Zeit kosten, falls ich Deine Antwort richtig verstanden habe.
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
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
AutoHotkey: x GigaByte auswählen - select amount of x GigaByte
Probiers mal mit einem AutoHotkey script.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 ...
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.