lance001
Goto Top

Brauche ein Batch datei zur Überprüfung des freien HDD-speichers in MB

Hallo

Ich möchte vorm kopieren von 2 Files (ca 250mb; in den selben Ordner wo die Batch file liegt) überprüfen, ob genug Speicher vorhanden ist.
Habe schon etwas herumgestöbert aber bin nur auf Beiträge gekommen, die die Zahlenstellen abfragen. Nun könnte ich die Abfrage darauf aufbauen.. sprich: mehr als 1gb frei=kopiervorgang starten sonst--> zu wenig speicher frei.
Ist aber aus meiner Sicht nicht wirklich sinngemäß wenn z.B. 980mb frei sind und ich die files trotzdem nicht kopieren kann.

Denkansätze bisher waren die bits in MB umzurechnen was aber es wird immer der Fehler: "Invalid number. Numbers are limited to 32-bits of precision. " ausgegeben.
der zweite Ansatz war, dass der Wert nicht von links nach rechts eingelesen wird sondern von rechts nach links und man somit sagen könnte: lies 9 stellen aus und überprüfe ob die zahl größer oder kleiner als 250mb ist.

Leider konnte ich bisher weder für den einen noch für den andren Ansatz eine Lösung finden. Vielleicht sind aber beide Ansätze falsch?

Kann mir jemand von euch weiterhelfen?

mfg, Lance

Content-Key: 51119

Url: https://administrator.de/contentid/51119

Printed on: April 25, 2024 at 05:04 o'clock

Member: miniversum
miniversum Feb 08, 2007 at 11:13:31 (UTC)
Goto Top
Vielleicht hilft dir das hier weiter:

@echo off

set LW=C:

FOR /F "tokens=3 delims= " %%i in ('dir %LW% /-c') do set Frei=%%i  

echo Freier Speicher auf %LW%: %frei%

if %frei% lss 1000000000 echo Zu wenig freier Speicher
if %frei% gtr 1000000000 echo Genug freier Speicher

miniversum
Member: Lance001
Lance001 Feb 08, 2007 at 11:45:32 (UTC)
Goto Top
Vielleicht hilft dir das hier weiter:

> @echo off
> 
> set LW=C:
> 
> FOR /F "tokens=3 delims= " %%i in  
> ('dir %LW% /-c') do set Frei=%%i  
> 
> echo Freier Speicher auf %LW%: %frei%
> 
> if %frei% lss 1000000000 echo Zu wenig
> freier Speicher
> if %frei% gtr 1000000000 echo Genug freier
> Speicher
> 

miniversum

das is dann genau das problem mit 1gig.. brauche nur 250mb und net nen gig.. müsste mit der lösung quasi immer 750mb mehr frei haben als ich benötige.. das kanns ja net sein.

gibts da keine andre lösung? :/
Member: miniversum
miniversum Feb 08, 2007 at 12:19:57 (UTC)
Goto Top
Dann änderst du das
if %frei% lss 1000000000 echo Zu wenig
eben zu
if %frei% lss 250000000 echo Zu wenig
bzw.
if %frei% lss 262144000 echo Zu wenig

Die genaue größe kennst nur du.

miniversum

edit:

Wenn dus umbedingt in MB brauchst kanst du ja auch
set /a frei=%frei%/1048576
if %frei% lss 250 echo Zu wenig
davor schrieben.
Member: Lance001
Lance001 Feb 08, 2007 at 13:03:59 (UTC)
Goto Top
vielen dank für den hinweis ich lass es mal so.. eigentlich sollte es ja funktionieren (was zur zeit zweifellos der fall ist).
habs bisher nur immer auf meiner hdd probiert und da sind noch 57gigs frei.
Member: miniversum
miniversum Feb 08, 2007 at 18:33:35 (UTC)
Goto Top
Kannst es ja mit hilfe einer Diskette testen. oder halt den Wert verändern auf 60Gb oder so.

miniversum
Member: Biber
Biber Feb 08, 2007 at 19:10:45 (UTC)
Goto Top
Moin Lance,

ergänzend zu miniversums Lösung:
zu dem Thema (und auch zu dem Punkt: "CMD.exe kann nicht mit Zahlen >21 GigaByte rechnen") findest Du noch ein paar Beiträge über die Forumssuche.
Die meisten einfach durch Eingabe von "Freespace".

Ein ausführlicher ist dieser: freien Festplattenspeicher über die Kommandozeile abfragen

Grundsätzlich: wähle lieber eins der Utilities, die den Platz in MByte/GByte anzeigen können (DirUse.exe, du.exe , diskpart.exe,...) oder einen VBS-Schnipsel.

Gruss Biber
Member: Lance001
Lance001 Feb 09, 2007 at 09:07:50 (UTC)
Goto Top
Moin Lance,

ergänzend zu miniversums Lösung:
zu dem Thema (und auch zu dem Punkt:
"CMD.exe kann nicht mit Zahlen >21
GigaByte rechnen") findest Du noch ein
paar Beiträge über die
Forumssuche.
Die meisten einfach durch Eingabe von
"Freespace".

Ein ausführlicher ist dieser:
[content:64688f112136beb1b898ce6c3965376a
freien Festplattenspeicher über die
Kommandozeile abfragen]

Grundsätzlich: wähle lieber eins
der Utilities, die den Platz in MByte/GByte
anzeigen können (DirUse.exe, du.exe ,
diskpart.exe,...) oder einen VBS-Schnipsel.

Gruss Biber

Hallo!

Danke für den Hinweis Biber, ich werde es mal vorschlagen (das Programm ist ja nicht für mich).
Sollte aber soweit funktionieren mit 250MB.. mehr wird nicht gebraucht weil einfach nur ein Geschwindigkeitstest eines Filetransfairs von nem FTP, ins Verzeichnis wo die Batch liegt, stattfinden soll.

MfG, Lance