Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Die neuesten Dateien mit der Größen-Summe von 4GB innerhalb eines Verzeichnisses filtern?

Frage Entwicklung Batch & Shell

Mitglied: herbert-m

herbert-m (Level 1) - Jetzt verbinden

04.04.2008, aktualisiert 05.04.2008, 6448 Aufrufe, 6 Kommentare

Hallo,
ich bin zwar hier ein neuer Schreiber, aber dafür ein schon sehr alter Leser

Im Moment grüble ich über einer DOS-Batch, welche mir beim DVD-brennen helfen soll.
Und zwar ist es für mich wichtig, dass die neuesten 4 GB (oder 4,3 GB) eines festgelegten Verzeichnisses auf DVD gebrannt werden.

Ich hab mir vorgestellt (bessere Ideen sind natürlich willkommen), dass alle älteren Dateien welche die (Verzeichnis-)Größe von 4,3 GB überschreiten würden in ein anderes Verzeichnis gemovet werden.

Mein bisheriges Ergebnis:

@echo off & setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /-C /O-D /TC /B') do ((
set /a mb=!size!+%%~zi
set /A size=mb
)
if !mb! GTR 4617089843 move "%%~fi" g:\alte_Sicherung\
)


Diese Befehle machen immerhin was
Allerdings nicht zuverlässig. Wenn man es öfters über ein Verzeichnis laufen lässt, dann werden immer mehr Dateien daraus gemovet, obwohl es nicht nötig wäre
Ausserdem stimmt was mit der Sortierung nicht. Es werden Dateien stehen gelassen, welche schon älter sind und eigentlich gemovet werden könnten.

Im Moment bin ich irgendwie blind.
Vielleicht hat von euch einer einen kleinen Schubs für mich?

Gruß und Dank
Herbert
Mitglied: bastla
04.04.2008 um 14:28 Uhr
Hallo herbert-m und willkommen im Forum auch als Schreiber!

Villeicht sorgt der folgende Beispielsbatch für den ersten kleinen Schubs :
01.
set /a mb=2147483647 
02.
echo %mb% 
03.
set /a mb=%mb%+1 
04.
echo %mb% 
05.
set /a mb=%mb%+1 
06.
echo %mb% 
07.
set /a mb=4294967294 
08.
echo %mb% 
09.
set /a mb=4294967295
Grüße
bastla
Bitte warten ..
Mitglied: Biber
04.04.2008 um 15:00 Uhr
... wobei Erbsenzähler wie ich vielleicht noch ergänzen würden,
dass das Ende der Fahnenstange für die CMD.exe mit (2 hoch 31) -1 = 2147483647 erreicht ist.

[OT]
Die gute Nachricht dabei ist.
Andere (kostenpflichtige!) M$-Programme haben noch wesentlich kleinere (Zweierpotenzen minus 1) als Grenze.
So z.B. das M$-Access mit seinen vielen 256-minus-1-Restriktionen (Tabellen, Locks, Zugriffe,..).
[/OT]

Anyhow, dieser vermeintliche Bug ist also nicht XCopy anzulasten - das ist eine CMD-Restriktion.

Grüße
Biber
Bitte warten ..
Mitglied: bastla
04.04.2008 um 15:18 Uhr
@Biber

Wieso denn Erbsenzähler? Als solcher hättest Du doch vermutlich auch noch darauf hingewiesen, dass noch nicht einmal die Meldung
01.
Ungültige Zahl. Zahlen sind begrenzt auf eine Genauigkeit von 32 Bits.
fehlerhaft, sondern eben so zu interpretieren ist, dass die aus den 32 Bit gebildete Zahl "signed" ("vorzeichenbehaftet") ist (woraus sich die inzwischen mehrfach erwähnte Obergrenze von 2147483647 für positive Zahlen ergibt).

Grüße
bastla
Bitte warten ..
Mitglied: Biber
04.04.2008 um 15:41 Uhr
Na ja, bastla,

wie dem auch sei, als nächstes wäre dann ja zu prüfen, ob diese 32-Bit-Restriktion wirklich nur für das Skripting-Hilfsmittel CMD.exe gilt (wie ich behauptet habe) und dort auch nur für das "Rechnen".
Da ich hier zwar einen XP-Rechner habe, aber keine 4-Gigabyte-Dateiklötze, kann ich leider nicht prüfen, ob denn die Dateigröße (die ja mit "%%~zi" ermittelt wird) wenigstens richtig angezeigt wird.

Wenn ja, ließe sich ja auch im Batch ein (wenn auch hässlicher) Workaround schreiben mit "wenn die Stringlänge von Dateigröße länger als x Zeichen ist und die erste Ziffer größer als 1, dann...".

Aber ob die "%%~zi"-Auflösung noch funktioniert, das muss uns wohl herbert-m sagen.
....es sei denn, Du hast noch ein paar 4,3 GByte-große VBS-Schnipsel rumliegen...

Grüße
Biber
Bitte warten ..
Mitglied: bastla
04.04.2008 um 19:34 Uhr
@Biber

... ob denn die Dateigröße (die ja mit "%%~zi" ermittelt wird) wenigstens richtig angezeigt wird.
Anzeige klappt auch mit > 6 GB

....es sei denn, Du hast noch ein paar 4,3 GByte-große VBS-Schnipsel rumliegen...
Zum Testen habe ich denen mal den Typ ".mpv" gegeben ...

Falls herbert-m aber nicht auch einzelne Dateien mit mehr als 2 GB hat, sollte es ja auch genügen, die ermittelte Dateigröße durch eine Division (etwa durch 1000) auf eine auch für CMD verträgliche Größe zu bringen - es ginge ja dann nur um's Aufsummieren, und die entstehenden Rundungsfehler würden schon nicht das ganze Konzept über den Haufen werfen...

Grüße
bastla
Bitte warten ..
Mitglied: herbert-m
05.04.2008 um 08:36 Uhr
Hallo,
sehenden Auges bin ich gegen den Baum gerannt!
Hab mir die Zahlen ja beim Testen anzeigen lassen, denke mir noch 'Ah ja, da zwickts noch mit der Größenbeschränkung, 'musst halt dividieren' ... lass es aber momentan so, weil man ja kein Erbsenzähler sein will

Habs dann gestern gleich ausprobiert und bin zufrieden ins Bett gegangen

Nun sieht das so aus:

@echo off & setlocal enabledelayedexpansion
cd g:\Sicherung
g:
for /f "delims=" %%i in ('dir g:\Sicherung /-C /O-D /TC /B') do ((
set /A div=%%~zi/1000
set /a mb=!size!+!div!
set /A size=mb
)
if !mb! GTR 4617089 move "%%~fi" g:\sicherung_alt
)

Zur Erklärung:
Es geht um RAR-Archive mit einer Größe von ca. 300-350 MB, welche jeweils als Sicherung nach dem Abmelden des letzten Users erstellt werden.

Vielen Dank für den Schubs
Herbert
Bitte warten ..
Neuester Wissensbeitrag
Exchange Server

WSUS bietet CU22 für Exchange 2007 SP3 nicht an. EOL Exchange 2007

Tipp von DerWoWusste zum Thema Exchange Server ...

Ähnliche Inhalte
Windows Server
gelöst NTFS-Volume - Summe aller Dateien ist deutlich geringer als Volumegrösse (4)

Frage von Augenadler zum Thema Windows Server ...

Windows Server
Ereignisanzeige - Nach verschobenen Dateien filtern (1)

Frage von Stecken zum Thema Windows Server ...

Batch & Shell
gelöst Powershell Get-Content Inhalt filtern (1)

Frage von derhoeppi zum Thema Batch & Shell ...

Windows 10
gelöst Werden Dateien beim Ersetzen wirklich überschrieben? (3)

Frage von Nexder zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst Batch xls nach aktuellem Datum auslesen und email senden (14)

Frage von michi-ffm zum Thema Batch & Shell ...

Backup
Datensicherung ARCHIV (12)

Frage von fautec56 zum Thema Backup ...

LAN, WAN, Wireless
Per Script auf UniFi-controller zugreifen und WPA2-Key ändern (11)

Frage von Winfried-HH zum Thema LAN, WAN, Wireless ...