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-Key: 66125

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

Printed on: April 20, 2024 at 01:04 o'clock

Member: TuXHunt3R
TuXHunt3R Aug 14, 2007 at 06:29:47 (UTC)
Goto Top
Dazu brauchst du das Tool "Freedisk.exe" aus dem Windows Resource Kit. Wenn du mir etwas Zeit gibts, bastel ich was.....
Member: TuXHunt3R
TuXHunt3R Aug 14, 2007 at 06:48:49 (UTC)
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
Member: kinggunta
kinggunta Aug 14, 2007 at 08:00:24 (UTC)
Goto Top
Danke!

Werde ich gleich testen!
Member: miniversum
miniversum Aug 14, 2007 at 15:13:16 (UTC)
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
Member: TuXHunt3R
TuXHunt3R Aug 15, 2007 at 09:27:03 (UTC)
Goto Top
@ kinggunta

Hat es geklappt mit Freedisk.exe?
Member: bastla
bastla Aug 15, 2007 at 16:55:47 (UTC)
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
Member: kinggunta
kinggunta Aug 15, 2007 at 17:44:34 (UTC)
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