Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Variablen in Batch vergleichen

Frage Entwicklung Batch & Shell

Mitglied: feindflug

feindflug (Level 1) - Jetzt verbinden

13.01.2009, aktualisiert 17:54 Uhr, 20160 Aufrufe, 4 Kommentare

Hallo,

ich bin gerade an Grübeln waran es liegen könnte das ein Vergleich zweier Variablen nicht funktioniert.

@echo off
setlocal enableextensions enabledelayedexpansion
color 0A
REM aus diesem Forum hier, ermittelt freien Speicherplatz auf Laufwerk d in GB
for /f "tokens=3" %%i in ('dir d: /-c^|findstr /c:"Bytes frei"') do set "Frei=%%i"
set GB=%Frei:~,-9%
REM zu Testzwecken Ausgabe des Wertes = 172
echo %GB%
REM Vergleich der beiden Werte Falls Variable GB kleiner als 25 ist soll SIe zu Error springen, anderenfalls zu mache weiter
if "%GB%" LSS "25" goto error

:error
echo Wert ist kleiner als 25
exit

:mache weiter
echo Wert ist größer als 25

Fehler: Sprung immer zu error

Vielen Dank für Eure Hilfe.
Mitglied: bastla
13.01.2009 um 18:04 Uhr
Hallo feindflug und willkommen im Forum!

Da Du Zahlenwerte (und nicht Text) vergleichen willst, musst Du die zu vergleichenden Werte auch als Zahl (und daher ohne Anführungszeichen) angeben.

Hinzu kommt, dass ":error" auf jeden Fall erreicht wird (per Sprung oder weil es ohnedies die nächste Batchzeile ist) - insofern wäre etwa
if %GB% GEQ 25 goto :mache weiter
angebracht.

Grüße
bastla
Bitte warten ..
Mitglied: Biber
13.01.2009 um 18:11 Uhr
Moin feindflug,

willkommen im Forum.
Wenn Du Zahlenwerte vergleichen willst, dann darfst Du keine Anführungszeichen verwenden.
Ohne Anführungszeichen wird die erste/die linke Variable im Vergleich als "Zahl" angenommen, wenn sie mit einer Ziffer beginnt.
So einfach ist die M$-Welt gestrickt.

Außerdem wird die Sprungmarke ":error" auch ohne Sprung immer erreicht.
Also ändere die Zeile sinngemäß:
01.
if  %GB% GEQ  25 goto :weiterAllesPrima 
02.
 
03.
::error 
04.
REM { bla } 
05.
... 
06.
goto :ende 
07.
:: 
08.
:weiterAllesPrima 
09.
REM { bla }
Grüße
Biber



[Edit] Okay, gegenstandslos.... wieder mal zweiter... *winkzz @bastla [/Edit]
Bitte warten ..
Mitglied: tim1986
13.01.2009 um 20:25 Uhr
LOL Bieber VS bastla = ) was für ein wettlauf
Bitte warten ..
Mitglied: GhostScripter
14.01.2009 um 11:13 Uhr
lustig, wenn man es gefunden hat

selbst wenn die if Bedingung nicht zutrifft, geht die Abarbeitung bei der Sprungmarke :error weiter. Es gibt ja keinen Befehl, etwas anderes zu tun. Du solltest also vor dem :error ein goto weiter einfügen. Ob Sprungmarken mit Leerzeichen erlaubt sing, weiss ich nicht, ich lass es lieber. Wenn Du nun die Zahlen noch als Zahlen behandelst (mit set /a und ohne Anführungszeichen in der IF Abfrage) , bist Du auch da auf der sicheren Seite. Und der exit Befehl im Error Unterprogramm ist auch nicht so toll, nim lieber einen Sprung an das Ende der Batch.

01.
@echo off 
02.
setlocal enableextensions enabledelayedexpansion 
03.
color 0A  
04.
REM aus diesem Forum hier, ermittelt freien Speicherplatz auf Laufwerk d in GB 
05.
for /f "tokens=3" %%i in ('dir d: /-c^|findstr /c:"Bytes frei"') do set "Frei=%%i"  
06.
set /A GB=%Frei:~,-9% 
07.
REM zu Testzwecken Ausgabe des Wertes = 172 
08.
echo %GB%  
09.
REM Vergleich der beiden Werte Falls Variable GB kleiner als 25 ist soll SIe zu Error springen, anderenfalls zu mache weiter 
10.
if %GB% LSS 25 goto error 
11.
 
12.
goto weiter 
13.
:error 
14.
echo Wert ist kleiner als 25 
15.
goto :EOF 
16.
 
17.
:weiter 
18.
echo Wert ist größer als 25
exit
GS
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch Abfrage Vergleiche mit Variable goto
gelöst Frage von ZunarasBatch & Shell4 Kommentare

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

Batch & Shell
In Batch eine Text Variable und ein Array vergleichen
Frage von DrMarksmanBatch & Shell5 Kommentare

Hallo Leute! Ich habe mich wieder zu meinen Ursprüngen des Programmierens zurück begeben und bin dabei ein kleines Programm ...

Batch & Shell
Batch - Variablen
gelöst Frage von Marlon1Batch & Shell2 Kommentare

Hallo, Ich habe eine Frage zu Variablen. Und zwar ob es irgendwie geht das Batch mit ein IF Befehl ...

Batch & Shell
Variablen oder Dateien nach Inhalt Vergleichen Powershell
Frage von Dpole86Batch & Shell7 Kommentare

Hallo Zusammen Nehmen wir an ich habe 2 Dateien und lade diese in jeweils in eine Variable. $var1 NBAPS100 ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Necur-Botnet soll Erpressungstrojaner Scarab massenhaft verbreiten

Information von BassFishFox vor 4 StundenErkennung und -Abwehr

12,5 Millionen Spam-Mails aus einem Bot-Netz mit 6 Millionen Computern? Eigentlich eine schwache Leistung. Die Erpresser setzen dabei auf ...

Microsoft

Nadeldrucker-Problem unter Windows - Microsoft liefert Updates

Information von BassFishFox vor 4 StundenMicrosoft

Hat ja nicht lange gedauert. Nachdem die November-Updates für Windows 7, 8.1 und 10 zahlreiche Nadeldrucker lahmgelegt hatten, stellt ...

Linux

Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde

Information von Frank vor 12 StundenLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 1 TagBatch & Shell9 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Heiß diskutierte Inhalte
Linux
Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde
Information von FrankLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Router & Routing
Zwei Netzwerke erstellen
Frage von bunteblumeRouter & Routing14 Kommentare

Hallo Zusammen, Ich möchte gerne ein backup von einem bestimmten Folder welcher auf dem Server regelmässig synchronisiert wird auf ...

Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...

Windows Server
Kann man im KMS nachschauen , wieviele Clients den Key in Anspruch genommen haben
gelöst Frage von rainergugusWindows Server12 Kommentare

Hallo, wir haben einen KMS Windows 10 Key. Dieser ist ja W7 kompatibel. Aber unser Windows 7 Pool registriert ...