badbatchcoder
Goto Top

Batch- Überprüfen ob ein Zeichen ein Leerzeichen ist

Hey,

ich bin mit Batch noch relativ unerfahren und möchte überprüfen, ob %string~4,1%
(an der 5. Stelle meines Strings) ein Leerzeichen ist oder nicht.
Wenn sich dort ein Leerzeichen befindet, soll die Variable %ifspace% auf "1" gesetzt werden.
Ansonsten soll sie auf "0" bleiben.

Habe gerade folgendes versucht:
@echo off
set string=1234 56
set ifspace=0

if %string~4,1%==" " set ifspace=1  
pause
Das Programm hat sich aber immer gleich wieder geschlossen - trotz des "pause"-Befehls.

Ich hoffe mir kann hierbei jemand weiterhelfen.
LG BatchCoder

Content-ID: 613493

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

Ausgedruckt am: 22.11.2024 um 04:11 Uhr

rubberman
Lösung rubberman 16.10.2020 aktualisiert um 18:01:45 Uhr
Goto Top
Anführungszeichen werden mit verglichen. Also musst du sie auch um deine Variable setzen.
BTW Du hast den Doppelpunkt vergessen.
"%string:~4,1%"

Steffen
BadBatchCoder
BadBatchCoder 16.10.2020 aktualisiert um 18:17:07 Uhr
Goto Top
Oh, ok =)
Vielen Dank für deine Hilfe!

Hab jetzt den Doppelpunkt ergänzt, jetzt lässt sich das Skript wenigstens starten.
Soll ich jetzt eine Variable mit dem Wert " " erstellen und dann nach der Variable überprüfen?

Das hätte ich jetzt nämlich folgendermaßen gelöst:

@echo off
set space=" "  
set string=1234 56
set ifspace=0

if %string:~4,1%==%space% set ifspace=1
pause

Oder muss da das Leerzeichen nach %space% und die Anführungsstriche bei der Variable oben noch weg?
rubberman
Lösung rubberman 16.10.2020 um 18:26:30 Uhr
Goto Top
Ich hatte dir doch die Variable schon in Anführungszeichen gesetzt ¯\_(ツ)_/¯ Dann eben noch mal ...
if "%string:~4,1%"==" " set ifspace=1

Steffen
BadBatchCoder
BadBatchCoder 16.10.2020 um 18:34:55 Uhr
Goto Top
Tut mir leid, hab ich nicht genau vestanden. Funktioniert aber jetzt alles, danke! :D