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, 6432 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
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Windows Server
Ereignisanzeige - Nach verschobenen Dateien filtern (1)

Frage von Stecken zum Thema Windows Server ...

VB for Applications
VBS Script zum versenden mehrerer Verknüpfungen zu Dateien per Lotus Notes

Frage von Sentinel87 zum Thema VB for Applications ...

Windows Server
Server sehr langsam bei vielen kleinen Dateien (5)

Frage von MichiBLNN zum Thema Windows Server ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...