mistax
Goto Top

Warnung bei zu wenig freiem Speicher

Hallo zusammen,

wie müsste man eine Batch Datei anlegen, die einen warnt, wenn auf Laufwerk X:\ nur noch 10GB frei sind? Ich würde die dann halbstündlich per Taskplaner starten lassen, und eine Funktion einbauen, die mir dann per Mail Bescheid gibt.

Wie ich jedoch eben diese Prüfung anfangen soll, dazu fehlt mir momentan noch der Ansatz... Gibt es eine Funktion, die den freuen Speicher eines Laufwerks anzeigt? Dann könnt man ja mit

IF %speicher% LSS 10000 goto...

hantieren?!

Vielen Dank!

Content-Key: 65648

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

Printed on: April 23, 2024 at 19:04 o'clock

Mitglied: 51705
51705 Aug 07, 2007 at 14:25:03 (UTC)
Goto Top
Falls zur Hand, empfehle ich:

c't 18/06, Seite 200
Member: MISTAX
MISTAX Aug 07, 2007 at 15:22:31 (UTC)
Goto Top
Falls zur Hand, empfehle ich:

c't 18/06, Seite 200


Steht da eine komplette Lösung in Batch drin? Dann würde ich mir die nachordern...
Mitglied: 45753
45753 Aug 07, 2007 at 15:29:50 (UTC)
Goto Top
Hallo MISTAX,

das duerfte den Zweck erfuellen. Die Batch gibt nur ein echo aus, wenn der Speicher weniger als 10GB beträgt. Wenn auch eine Ausgabe kommen soll wenn der Speicher ueber 10GB beträgt, dann einfach die zwei doppelpunkte in der letzten zeile vor dem echo entfernen. Um zu sehen was mit der Variablen "%freierspeicher%" passiert, must du die zwei doppelpunkte vor den anderen echos auch noch entfernen.

Die Batch funktioniert nicht wenn sie sich im Stammverzeichnis von C: oder D: usw. befindet.
Um das zu fixen must du in der ersten Codezeile
DIR "?"
durch
DIR "*"
ersetzen.

@echo off

for /f "tokens=3" %%i in ('DIR "?" /-c 2^>nul^|find "Verzeichnis(se),"') do set freierspeicher=%%i& set laufwerksbuchstabe=%~d0  

::echo "%freierspeicher%"& pause  

set "freierspeicher=%freierspeicher:~-12,-6%  

::echo "%freierspeicher%"& pause  

if "%freierspeicher%" == "" echo Laufwerk %laufwerksbuchstabe%\ hat weniger als 10 GB freien Speicher.& pause >nul& goto :eof  
if %freierspeicher% LSS 10000 echo Laufwerk %laufwerksbuchstabe%\ hat weniger als 10 GB freien Speicher.& pause >nul& goto :eof

::echo Laufwerk %laufwerksbuchstabe% hat mehr als 10 GB freien Speicher.& pause >nul

[Edit]

-um paulepanks Info ergaenzt
-if "%freierspeicher%" == "" wird nun als weniger als 10GB ausgegeben.

[Edit]

Gruesse, wobleibtdiezeit
Mitglied: 45753
45753 Aug 07, 2007 at 15:30:36 (UTC)
Goto Top
nein eben nicht. deshalb hab ich dir die grad mal geschrieben...
Mitglied: 51705
51705 Aug 07, 2007 at 15:31:52 (UTC)
Goto Top
Die dort vorgestellte Lösung nutzt den Leistungsmonitor. Beim Überschreiten der gewünschten Schwellwerte wird dann eine E_Mail gesendet.
Member: paulepank
paulepank Aug 07, 2007 at 16:01:42 (UTC)
Goto Top
Hallo,

oder
for /f "tokens=3" %%i in ('dir /-c x:\^|findstr frei') do @set speicher=%%i  

den Rest kannst du ja selbst.

cu paulepank
Mitglied: 45753
45753 Aug 07, 2007 at 18:43:39 (UTC)
Goto Top
Hallo paulepank

danke fuer den Hinweis

Gruesse, wobleibtdiezeit