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

Mitglied: feindflug

feindflug (Level 1) - Jetzt verbinden

13.01.2009, aktualisiert 17:54 Uhr, 20612 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

Javaversion mit Batch vergleichen und Übergabe Variable an VBScript

gelöst Frage von tklineBatch & Shell4 Kommentare

Hallo Leute, Hab mal wieder ein Spezialfall für euch Profis :-) Folgender Sachverhalt: Ein selbstgeschriebenes Programm namens "Breadcrumb" schreibt ...

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 ...

Neue Wissensbeiträge
Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 1 TagWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Sicherheit
Microsoft und Skype: Sicherheit
Information von kgborn vor 1 TagSicherheit

Die Tage gab es ja einige Berichte zur Sicherheit des Skype-Updaters. Der Updater von Skype läuft unter dem Konto ...

Datenschutz

Behörden ignorieren Sicherheitsbedenken gegenüber Windows 10

Information von Penny.Cilin vor 2 TagenDatenschutz8 Kommentare

Hallo, passend zum Thema Ablösung LIMUX in München ein interessanter Beitrag dazu: Behörden ignorieren Sicherheitsbedenken gegenüber Windows 10 Anscheinend ...

Sicherheit
Information Security Hub Munich airport
Information von brammer vor 2 TagenSicherheit

Hallo, Neues Center für Cyber Kriminalität am Münchener Flughafen brammer

Heiß diskutierte Inhalte
DSL, VDSL
Mindestgeschwindigkeiten DSL Telekom
Frage von justlukasDSL, VDSL14 Kommentare

Hallo zusammen, Seit diesem Jahr habe ich Verständnisprobleme mit dem Verhalten der Telekom. Wir haben seit einem Jahr VDSL ...

Windows 10
Windows 10 (1709) Tastur und Maus wieder einschalten?
Frage von LochkartenstanzerWindows 1011 Kommentare

Moin, Ich habe von einem Kunden einen Win10-Rechner bekommen, bei dem weder Tastatur noch Maus geht. Die Hardware funktioniert ...

Humor (lol)
Was könnte man mit einem Server machen? Idee gesucht
Frage von 2SeitenHumor (lol)11 Kommentare

Hey Zusammen Ich habe einen alten HP G2 Rackserver zu Hause rumliegen. 28GB Ram, 1xAMD Prozi mit etwa 2GHz. ...

Switche und Hubs
LANCOM-Switch: Probleme (no link) mit SFP-Modulen?
Frage von THETOBSwitche und Hubs11 Kommentare

Hi zusammen, ich habe folgendes Problem: Und zwar habe ich an einem Standort drei Switche verbaut - LANCOM GS-2326P+, ...