real_general
Captain
- Registriert
- Sep. 2006
- Beiträge
- 3.418
Langsam wirds unübersichtlich.
Code:
$path = "c:\users\admin\desktop\test"
$list = gci -path $path | ? {$_.extension -eq ".txt"}
$max = 104857600 # 100MB
$sum = ($list | measure-object -property length -sum).sum # Summe der Dateigrößen
$runs = 0
while ($sum -gt $max){
$count = 1 # Zähler
while (($list |select -first $count | measure-object length -sum).sum -lt $max){ # zählt benötigte Dateien für Dateigröße $max
$count++
}
$runs++
$splitline = ((($list | select -first 1).name) -split "_") #Splite bis zu "_"
$folder = "\" + $splitline[0] + "{0:D3}" -f $runs +"\"
new-item ($path + $folder) -type directory
$list |select -first $count | move -destination ($path + $folder)
# lese Ordner neu ein
$list = gci -path $path | ? {$_.extension -eq ".txt"}
$sum = ($list | measure-object -property length -sum).sum
}
if(!($sum -gt $max)){
# verschiebt restliche Dateien
if($runs -gt 0 -and ($list | measure-object).count -ne 0){ # wenn $list nicht leer
$list | move -destination ($path + $folder)
}
echo "zu wenig Dateien / Skript beendet"
}
Zuletzt bearbeitet: