Programmieren - alles kontrollieren 4.940 Themen, 20.676 Beiträge

SET /P und Leerzeichen = Abbruch

staubwolke / 1 Antworten / Baumansicht Nickles

Hallo Leutz,

ich steh mal wieder vor einem batch Problem, denn es gelingt mir nicht, die Eingabe eines Leerzeichen auszuwerten,
meint: dieser Versuch bricht einfach die Ausführung ab wenn "Leerzeichen+Enter" auf Eingabe folgt

SET /P Q bitte eine 1 für weiter, Eingabe =
if not defined Q goto :weiter2
if .%Q%. NEQ .1. goto :weiter2

rem bei 1 geht es hier weiter
echo 1 wurde eingegeben....
...

ein "beliebiges anders Zeichen+Enter" wie auch "1+Enter" oder auch "nichts+Enter" werden ausgewertet!

hat jemand eine Idee warum "Leerzeichen+Enter" zum Abbruch der batch führt?

Staubwolke

bei Antwort benachrichtigen
staubwolke Nachtrag zu: „SET /P und Leerzeichen = Abbruch“
Optionen

Hall Leutz,

konnte mir die Frage selbst beantworten, das Problem war die fehlende Maskierung mit ""
um ein Leerzeichen " " erfassen zu können, mit folgender Testbatch habe ich das gewünschte erreicht

@echo off
echo a test of command set /P
echo.
set /P "myval=nu tu wat eintippen tun :) "
echo.
echo errorlevel %errorlevel%
if not defined myval echo 0 keine Variable ^%myval^% vorhanden
if defined myval echo 1 die Variable "myval"= "%myval%" ist vorhanden
if "%myval%" EQU "" echo 2 test der Variable "myval"= "%myval%" auf leer = wahr
if "%myval%" NEQ "" echo 3 test der Variable "myval"= "%myval%" auf nicht leer = wahr
if "%myval%" EQU " " echo 4 test der Variable "myval"= "%myval%" auf space = wahr
if "%myval%" NEQ " " echo 5 test der Variable "myval"= "%myval%" auf nicht space = wahr
if "%myval%" EQU "1" echo 6 test der Variable "myval"= "%myval%" auf 1 = wahr
if "%myval%" NEQ "1" echo 7 test der Variable "myval"= "%myval%" auf nicht 1 irgend etwas anderes = wahr
pause

falls es jemanden interessiert ;)

Staubwolke

bei Antwort benachrichtigen