kinggunta
Goto Top

Windows Batchdatei nur starten wenn 50 Prozent von C Platte frei?

Hi Leute!

Ich möchte mir eine Windows Batchdatei schreiben für eine Datensicherung.

Die Batchdatei soll aber zuerst Prüfen ob auf c: noch mehr als 50% frei sind.
Wie geht das? Nur wenn die Bedingung erfüllt ist das C: nicht mehr als 50% belegt ist soll das Script laufen.

Danke
Gunta

Content-ID: 66125

Url: https://administrator.de/forum/windows-batchdatei-nur-starten-wenn-50-prozent-von-c-platte-frei-66125.html

Ausgedruckt am: 09.04.2025 um 20:04 Uhr

TuXHunt3R
TuXHunt3R 14.08.2007 um 08:29:47 Uhr
Goto Top
Dazu brauchst du das Tool "Freedisk.exe" aus dem Windows Resource Kit. Wenn du mir etwas Zeit gibts, bastel ich was.....
TuXHunt3R
TuXHunt3R 14.08.2007 um 08:48:49 Uhr
Goto Top
Ich habe leider im Moment nur Windows 2000 zur Verfügung, darum die Grössenangabe in Bytes. Unter Windows XP/Vista/2003 kannst du die Grössenangabe auch in KB,MB,GB angeben.

Wenn du eine 120 GB Festplatte hast, lautet der Code so:

::#########################################

freedisk c: 60000000000
if "%errorlevel%"=="0" (
echo.
echo Es hat genug Platz, Script laeuft weiter....
) else (
echo Script wird beendet
goto :eof
)
::#########################################

"60000000000" ist die Grössenangabe in Bytes. Gib dort die Hälfte deiner Partitionsgrösse an. Wie gesagt, im Resource Kit von XP/Vista/2003 kann man die Grösse auch in KB,MB,GB angeben.
Nähere Infos zu Freedisk.exe erfährst du, wenn du freedisk /? im CMD-Fenster eingibst
kinggunta
kinggunta 14.08.2007 um 10:00:24 Uhr
Goto Top
Danke!

Werde ich gleich testen!
miniversum
miniversum 14.08.2007 um 17:13:16 Uhr
Goto Top
Und nur mit Boardmitteln gehts so:
@echo off
FOR /F "tokens=3 delims= " %%i in ('dir /-C c:') do set rest=%%i
set restMB=%rest:0,-6%
if %restMB% lss 60000 echo Weniger als 60000MB frei

miniversum
TuXHunt3R
TuXHunt3R 15.08.2007 um 11:27:03 Uhr
Goto Top
@ kinggunta

Hat es geklappt mit Freedisk.exe?
bastla
bastla 15.08.2007 um 18:55:47 Uhr
Goto Top
... ansonsten reiche ich noch eine ebenfalls nur mit Bordmitteln arbeitende Variante nach:
@echo off & setlocal
Set "Check=%temp%\ChkPct.vbs"  
echo Set C=CreateObject("Scripting.FileSystemObject").GetDrive(WScript.Arguments(0)):If (C.FreeSpace/C.TotalSize*100)^<CInt(WScript.Arguments(1)) Then WScript.Quit(1)>"%Check%"  
::für Laufwerk C auf 50 % überprüfen ...
cscript //nologo "%Check%" C 50 || goto :NichtGenug  

echo Sicherung kann gestartet werden ...
goto :eof

:NichtGenug
echo Zu wenig freier Speicherplatz ...
goto :eof
Da sich die Gesamtkapazität einer Partition ja nicht soo oft ändert face-wink, würde zwar auch die Angabe des Absolutbetrages von 60 GB (oder GiB oder wie auch immer) wie in den Varianten oben genügen, ich hab's aber trotzdem mal auf Prozent umgestellt - zur Angabe des Satzes (und des zu prüfenden Laufwerkes) siehe Zeile 5.


Grüße
bastla
kinggunta
kinggunta 15.08.2007 um 19:44:34 Uhr
Goto Top
Hallo!

Vielen Dank an alle für die schnelle und umfangreiche Hilfe.
Ich habs mit der Lösung von miniversum erledigt.
Danke für die restlichen Ratschläge vielleicht brauche ich diese ja später mal face-wink

DANKE!
Gunta