CMD Abfrage liefert leeren Wert

dinoldo

Cadet 4th Year
Registriert
Juni 2017
Beiträge
104
Hallo Leute,

ich habe hier im Code die erste Abfrage mit 2 bestätigt, danach folgt die zweite Abfrage, wo ich ein Pfad Bsp. D:\Daten\ eingegeben habe. Soweit in Ordnung. Mich wundert es, dass ich %Ziel_Path% danach leeren Ergebnis liefert. Was mache ich bitte falsch bzw. was muss ich im Code ändern?

Code:
@echo off
color 3f
chcp 65001

echo.
echo [1] Zielverzeichnis = Script-Dir: %Script_Path%\%Name%
echo [2] Zielverzeichnis eingeben
echo.

set Ziel_Select=1
set /P Ziel_Select=Bitte das Zeilverzeichnis auswählen (Enter = 1):

if %Ziel_Select% == 1 (
    set Ziel_Path=%~dp0
)
if %Ziel_Select% == 2 (
    set /P Ziel_Location=Bitte das Zeilverzeichnis eingeben:
    set %Ziel_Path=%Ziel_Location%
)

echo %Ziel_Path%

pause

Beste Grüße,
Dino
 
Hi PHuV,

das habe ich auch vorher getestet. Leider steht "ECHO ist ausgeschaltet (OFF)."

...
Bitte das Zeilverzeichnis auswählen (Enter = 1): 2
Bitte das Zeilverzeichnis eingeben: D:\Daten\
ECHO ist ausgeschaltet (OFF).
Drücken Sie eine beliebige Taste . . .

Gruß,
Dino
 
Hm... Auf den ersten Blick würde ich meinen, dass bis auf das von @PHuV angemerkte % alles ok ist.

Batch hat aber eine Eigenart. Variablen werden nicht zur Laufzeit evaluiert wie man es von einer richtigen Skriptsprache oder gar einer Hochsprache kennt. Stattdessen wird das mehr oder weniger direkt beim Start einmal gemacht. Dadurch entstehen gewisse Effekte wie das was du beschreibst. Füge mal nach dem @Echo off eine Zeile ein: setlocal EnableDelayedExpansion
Rufe die fraglichen Variablen mit !name! statt %name% ab.
 
Zuletzt bearbeitet:
Habe Batch mal ausprobiert. Zeigt doch alles richtig an.
ECHO ist ausgeschaltet (OFF) nicht anzeigen.........

Zeile 21 = echo. %Ziel_Path% (Punkt nach echo)
 
Hallo Raijin,

jetzt funktioniert es. Vielen herzlichen Dank!

Beste Grüße,
Dino
 
  • Gefällt mir
Reaktionen: Raijin
Zurück
Oben