gelöst Wenn XX freier speicher dann goto

Mitglied: functionstrut

functionstrut (Level 1) - Jetzt verbinden

06.03.2017 um 11:16 Uhr, 728 Aufrufe, 4 Kommentare

Hallo

ich hänge hier irgendwie an einer kleinigkeit und bekomme es nicht hin.

ich möchte das wenn 10GB oder weniger freier speicher auf C:\ ist das dann ein befehl oder goto ausgeführt wird. habe schon folgendes script:

@setlocal enableextensions enabledelayedexpansion
@echo off
for /f "tokens=3" %%a in ('dir c:\') do (
set bytesfree=%%a
)
set bytesfree=%bytesfree:,=%
endlocal && set bytesfree=%bytesfree%

rem truncating end. loses precision
set /a kb=%bytesfree:~0,-3%
set /a mb = kb/1024
set /a gb = mb/1024
set /a benoetigt = 10
echo %gb%
if %gb% gtr %benoetigt% goto 2
pause

:2
ECHO jetzt sind nur noch 10GB speicher frei
pause
exit


aber wenn ich zum testen %benoetigt% bewusst auf den wert ändere das %gb% kleiner ist (z.B. if 20 gtr 100 goto 2) dann geht er trotzdem zu 2!

habt ihr da eine lösung?
Mitglied: em-pie
LÖSUNG 06.03.2017 um 11:29 Uhr
Moin,

1. mir fällt spontan auf, dass du in deinem Code bei set /a mb = kb/1024 vergessen hast, das kb in % einzuklammern..

2. und zum Debuggen solltest du zudem immer ein @echo on, statt @echo off machen.

3. habe ich dein set /a kb=%bytesfree:~0,-3% mal in ein set /a kb=%bytesfree:~0,-4% ersetzen müssen, um das letzte Zeichen (ein Punkt) loszuwerden

4. Kommt dein Script nicht mit den . (Punkt) in der Zahl klar. Setze ich den Wert mal manuell fest fest, klappt es...

5. Nutze doch bitte die CODE-Tags hier

ich denke, wenn du Punkt 4 behoben hast, wird es klappen


Gruß
em-pie
Bitte warten ..
Mitglied: functionstrut
06.03.2017 um 11:58 Uhr
vielen Dank für deine Mühe

habe zeitgleich auch nochmal gefummelt und habe rausbekommen das es ohne die erste zeile:
@setlocal enableextensions enabledelayedexpansion

einwandfrei funktioniert.

zu 4: wieso ein punkt? ich habe in den beiden zahlen doch keinen punkt gehabt.

zu 5: wird gemacht in zukunft
Bitte warten ..
Mitglied: em-pie
06.03.2017 um 12:10 Uhr
Zum Punkt 4
ich hatte zwischendurch echos mal eingbaut um zu sehen, was da so in den Variablen steht.
Wenn ich dein script habe ausführen lassen, wurde mir bereits bei der Variablen %bytesfree% 39.123.456 angezeigt (Win7, x86, SP1, deutsch).

Als ich den Wert mal auf 39123456 festgesetzt hatte, lief es durch...

Aber da du das Problem ja auch anders lösen konntest, ist ja alles tutti
Bitte warten ..
Mitglied: rubberman
06.03.2017 um 12:28 Uhr
Hallo Zusammen,

Alternative, die mit größer Zahlen halbwegs umgehen kann:
Der von B2GiB zurückgegebene Errorlevelwert ist der freie Speicher in GB inclusive 2 Nachkommastellen (die aber noch nicht durch Komma getrennt sind).

Grüße
rubberman
Bitte warten ..
Heiß diskutierte Inhalte
Routers & Routing
Cisco RIPv1 RIPv2
MrLabelQuestionRouters & Routing26 Comments

Hallo Zusammen, ich muss nochmal auf eine schon behandelte Frage eingehen. Bitte jemand, der auch den Cisco Paket Tracer ...

Education & Training
IT Ausbildung
solved IntershipQuestionEducation & Training20 Comments

Hallo Leute, ist diese Ausbildung etwas für den IT-Einstig? Willkommen bei der GFN! Arbeitsuchende Berufstätige Kostenträger Über uns Jobs ...

LAN, WAN, Wireless
RJ45 Buchsen Verbindung
solved DennisAdm1nQuestionLAN, WAN, Wireless16 Comments

Ich habe als Aufgabe bekommen die LAN-Verbindung in einem Haus zu fixen, dabei ist mir aufgefallen, dass der RJ45-Stecker ...

LAN, WAN, Wireless
Suche Access Point Wandhalterung
solved EZimmerQuestionLAN, WAN, Wireless11 Comments

Einen schöne guten Tag, wir haben uns bei einer Ausschreibung beteiligt und sind nun auch der Suche nach folgendem ...

Windows 10
Windows10 Hilfsprogramme endgültig löschen
istike2QuestionWindows 109 Comments

Hallo, wir sind gerade dabei mit Windows OOBE ein Image vorzubereiten. Wir würden gerne Xbox, HP Hilfsprogramme, Cortana usw. ...

IDE & Editoren
IDE Entwicklung, schreiben
solved IntershipQuestionIDE & Editoren9 Comments

Hallo Leute, zur Zeit befasse ich mich mit dem Schreiben einer eigenen IDE. Hat jemand so etwas schon mal ...

Ähnliche Inhalte
Windows Server

Remotesteuerung der Sitzung (Kennung XX) fehlgeschlagen

gelöst Stefan91FrageWindows Server14 Kommentare

Hallo Zusammen, seit kurzem bekomme ich oben genannte Fehlermeldung, wenn ich versuche eine Remotesitzung über den Taskmanager fernzusteuern (Rechtsklick ...

Switche und Hubs

Cisco SG200-XX für Telekom Entertain

gelöst XplosiveFrageSwitche und Hubs5 Kommentare

Hallo liebe Netzwerker, ich suche einen neuen Switch für meine SOHO Umgebung. Ich benötige VLAN Support und aktives Multicasting ...

Batch & Shell

Batch Abfrage Vergleiche mit Variable goto

gelöst ZunarasFrageBatch & Shell4 Kommentare

Schönen guten Tag! ich habe mir ein Script gebastelt. Mehr nach dem Try and Error Prinzip als wirklichem Können. ...

Humor (lol)

(Part num your Hacked phone. +XX XXXXXX5200)

HenereErfahrungsberichtHumor (lol)22 Kommentare

Mein Handy hat aber ne ganz andere Endnummer. Muss ich mir jetzt Sorgen machen ? :-) Vielleicht betrifft es ...

Batch & Shell

Batch Dateiabfrage. Wenn älter als dann goto

gelöst ZunarasFrageBatch & Shell2 Kommentare

Hallo, ich bin am basteln und möchte in meiner Batch eine Abfrage einbauen. Hier das komplette Skript: Ich möchte ...

Exchange Server

Exchange 2016, gesendete Objekte Postfach automatisch löschen nach xx Tagen

gelöst MacLeodFrageExchange Server5 Kommentare

Hallo, Ich suche nach einer Lösung um an einem Exchange Server 2016 die gesendeten Mails von 3 Postfächern nach ...

Berechtigungs- und IdentitätsmanagementBerechtigungs- und IdentitätsmanagementWebdienste und -serverWebdienste und -serverDatenbankenDatenbankenMonitoring & SupportMonitoring & SupportHybrid CloudHybrid CloudSmall Business ITSmall Business IT