Veröffentlicht 6. September 200519 j Gibt es eine Möglichkeit, wie ich über eine Batch-Datei o.ä. prüfen kann, ob ein Laufwerk droht vollzulaufen ? Also sollte jeden Abend laufen und eine Meldung senden, falls eine festgelegte Grenze unterschritten wird. BS: Win2000SRV
6. September 200519 j Oder per Batch: @echo off for /f "tokens=3" %%i in ('dir c: /-c') do set test0=%%i if %test0% lss 800000000 ( echo Achtung: Freier Speicherplatz von C ist mit %test0% Bytes kritisch ) Jetzt musst Du nur noch einen Kommandozeilen Mail-/SMS-Client finden, den Du anstelle von echo aufrufen kannst...
7. September 200519 j Autor Hallo Monty, das sieht ja schon mal nicht schlecht aus - klappt leider noch nicht Es wird überhaupt nichts ausgeschrieben und ich habe bereits unterschiedliche Byte-Angaben ausprobiert (höher <--> niedriger). Ist da evtl. noch ein Fehler vorhanden ? Ich hab mal "@echo off" rausgenommen + "pause"-Anweisung eingefügt und folgendes wird dann ausgegeben --> siehe Anlage. Irgendwie setzt er nur fleißig die Variable "test0".....
7. September 200519 j Direkt in der Konsole funktioniert das nicht, Du solltest es schon in eine Batch-Datei packen... Auch dort dann %%i anstelle von %i benutzen...
7. September 200519 j Autor Der war gut Meinst du ich hab das alles eingegeben ? Das ist deine Batch-Datei. Nur ohne die "@echo off"-Anweisung damit ich sehe was er überhaupt macht....
7. September 200519 j lol *g Es ist noch früh Aber dann find ich den Fehler jetzt nicht, bei mir geht's so: C:\temp>if 769511424 LSS 4000000000 (echo Achtung: Freier Speicherplatz von C ist mit 769511424 Bytes kritisch ) Achtung: Freier Speicherplatz von C ist mit 769511424 Bytes kritisch Edit: Achja, ich benutze Win2k Pro
7. September 200519 j Autor Mh - hab hier 'ne "pruefen.bat" mit folgendem Inhalt: for /f "tokens=3" %%i in ('dir c: /-c') do set test0=%%i if %test0% lss 42949672960 ( echo Achtung: Freier Speicherplatz von C: ist mit %test0% Bytes kritisch ) pause [/PHP] Hab ich da irgendwas falsch kopiert ? Das komische ist ja, dass er nur die Variable "test0" neu setzt - sieht zumindest für mich so aus....
7. September 200519 j Sieht richtig aus, funktioniert bei mir sogar so mit Deiner Batch... Vielleicht sieht hier jemand das Problem?
7. September 200519 j Autor Hab jetzt nochmal getestet: Win2000Pro -> klappt WinXP -> klappt nicht Win2000SRV-> klappt nicht Und da es ja für den Win2000SRV gedacht ist, ist das sehr blöde
7. September 200519 j versuch mal eine alternative: for /f "tokens=3 delims=, "%%a in ('dir /-c^|find /i "frei"') do set freierPlatz=%%a setzt eine umgebungsvariable namens "freierPlatz" mit dem wert in bytes. du kannst das sowohl direkt auf der kommandozeile aufrufen als auch in einer batch. nachteil ist, dass auf englischen windows-editionen das "frei" durch "free" ersetzt werden muss. s'Amstel
7. September 200519 j Autor versuch mal eine alternative: for /f "tokens=3 delims=, "%%a in ('dir /-c^|find /i "frei"') do set freierPlatz=%%a setzt eine umgebungsvariable namens "freierPlatz" mit dem wert in bytes. Mh - kommt die Fehlermeldung: "in" ist syntaktisch an dieser Stelle nicht verarbeitbar. Ich kann auch ehrlich gesagt nicht so Recht was mit dem Befehl anfangen. Wo kann ich z.B. das Laufwerk angeben und was bringt es mir, wenn ich eine Umgebungsvariable setze ? Montys Script an sich ist ja super und erfüllt den Zweck. Nur zwischen Win2000Pro und Win2000SRV scheint es ja Unterschiede in den verwendeten Befehlen zu geben oder steh ich jetzt völlig auf'm Schlauch ?
7. September 200519 j Das Auslesen des Speicherplatzes funktioniert ja, lediglich der Vergleich mit LSS scheint auf Win2k Server nicht zu fluppen...
7. September 200519 j Autor Das Auslesen des Speicherplatzes funktioniert ja, lediglich der Vergleich mit LSS scheint auf Win2k Server nicht zu fluppen... Also dürfte ja schon mal nicht eine fehlende Umgebungsvariable Schuld sein, oder ? Kann ich denn diese LSS-Funktionalität irgendwie testen bzw. bekommt man den Vergleich programmier-technisch auf anderen Wege hin ?
7. September 200519 j Autor Jetzt klappt's Es war mal wieder die berühmte Kleinigkeit, an der alles gescheitert ist: Es fehlen die Anführungszeichen in der IF-Abfrage @echo off set lw=C for /f "tokens=3" %%i in ('dir %lw%: /-c') do set test0=%%i IF "%test0%" LSS "500000000" ( net send meineIP Laufwerk %lw%: auf Server %computername% ueberpruefen ) [/PHP] Großes Danke an euch, aber besonders an Monty
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.