Wenn echo gleich G dann springe zu G
hi, so habe ich es versucht - klappt aber nicht:
wo ist das Problem?
danke!
@echo off
IF echo %~d0 = "H:" goto :H
:G
echo Bin bei G
pause
echo Bin bei H
:H
wo ist das Problem?
danke!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 397282
Url: https://administrator.de/contentid/397282
Ausgedruckt am: 25.11.2024 um 20:11 Uhr
5 Kommentare
Neuester Kommentar
Beinah.
ECHO triggert die Ausgabe in das Konsolefenster. In einem IF Statement hat ein ECHO also überhaupt nichts zu suchen.
IF wiederum vergleicht Strings so wie sie geschrieben stehen. Und wenn sie in Anführungszeichen stehen, werden auch die Anführungszeichen mit verglichen.
Vergleichsoperator für Gleichheit ist == während = der Operator für Zuweisungen ist.
GOTO braucht man vielleicht für Schleifenvarianten die Batch nicht kennt (bspw. while Schleifen). Für so ziemlich alles andere ist es kontraproduktiv und erzeugt Spaghetticode.
Steffen
wo ist das Problem?
Mehr als nur ein Problem. Hauptproblem ist, dass du zwar seit mehreren Jahren Batchcode schreibst, aber selbst die einfachsten Grundlagen noch immer nicht weißt. (Manch anderer würde behaupten, Hauptgrund ist, dass man heutzutage immer noch Batchcode schreibt.)ECHO triggert die Ausgabe in das Konsolefenster. In einem IF Statement hat ein ECHO also überhaupt nichts zu suchen.
IF wiederum vergleicht Strings so wie sie geschrieben stehen. Und wenn sie in Anführungszeichen stehen, werden auch die Anführungszeichen mit verglichen.
Vergleichsoperator für Gleichheit ist == während = der Operator für Zuweisungen ist.
GOTO braucht man vielleicht für Schleifenvarianten die Batch nicht kennt (bspw. while Schleifen). Für so ziemlich alles andere ist es kontraproduktiv und erzeugt Spaghetticode.
@echo off
if "%~d0"=="H:" (
echo Laufwerk H:
) else (
echo Laufwerk G:
)
pause
Und hier etwas Lesefutter bzgl. Windows Batch:
Gruss Penny
- Windows Batch Grundlagen
- Batch - ein paar Basics die man kennen sollte
- Workshop Batch for Runaways - Part I
- Workshop Batch for Runaways - Part II
- Workshop Batch for Runaways - Part III
- HowTo - Wie man Subroutinen in Batchfiles erstellt
- Tutorial zur FOR-Schleife
Gruss Penny
Nein. Das ist eher eine unglücklich gewählte Syntax. Einfacher:
Oder auch prozedural
Steffen
if "%~d0"=="G:" (
echo g
) else if "%~d0"=="H:" (
echo H
) else if … etc. (
Oder auch prozedural
@echo off &setlocal
call :LW_%~d0 2>nul || echo anderes Laufwerk
pause
exit /b
:LW_G
echo G
exit /b
:LW_H
echo H
exit /b
:LW_I
echo I
exit /b
:LW_J
echo J
exit /b