Längere For Schleife will nicht laufen
Hallo, ich habe eine Batch für die Einbindung mehrerer Laufwerke geschrieben.
Nur in der FOR Schleife will sie nicht funktionieren.
Die kleine Schleife ist o.k., die große bricht nach dem ersten Laufwerk ab.
@echo off
setlocal enabledelayedexpansion
echo "" > %~dp0\Laufwerksinit.txt
SET LW=X
SET "var=A B C D E F G H I J K L M N O P Q R S T U V W X Y Z"
for %%a in (%var%) do (
SET LW=%%a
echo !LW!
)
timeout /t 10 /nobreak
for %%a in (%var%) do (
SET LW=%%a
REM Laufwerksaufruf und Initialisierung
SET i=6
echo Laufwerksaufruf und Initialisierung für Laufwerk: !LW! / sec_!LW!
IF NOT EXIST sec_!LW!\nul goto LWW
echo LW !LW! soll installiert werden
IF EXIST !LW!:\nul goto LWN
echo LW !LW! existiert noch nicht
start sec_!LW!\Prog\TrueCrypt.exe /l!LW! /v sec_!LW!\Data\My_own_mobile /q /b /w
Pause
IF EXIST !LW!:\nul goto LWE
SET Ausg="LW !LW! wurde nicht installiert"
goto LWZ
:LWE
SET Ausg="LW !LW! erfolgreich instaliert"
REM Start / wait
Call !LW!:\start.bat
goto LWZ
:LWN
SET Ausg="LW !LW! bereits vorhanden"
goto LWZ
:LWW
SET Ausg="LW sec_!LW! keine Datei"
SET i=0
:LWZ
cls
echo Laufwerksaufruf und Initialisierung für Laufwerk: !LW! / sec_!LW!
echo ----------------------------------------------------
echo %Ausg%
echo %Ausg% >> %~dp0\Laufwerksinit.txt
echo ++++++++++++++++++++++++++++++++++++++++++++++++++++
echo ENDE --- Laufwerksaufruf und Initialisierung für Laufwerk: !LW! / sec_!LW! --- ENDE
timeout /t %i% /nobreak
REM Laufwerksaufruf und Initialisierung Ende
)
pause
exit
Für Hinweise, was hier nicht exakt ist, bion ich dankbar.
Freundliche Grüße aus Potsdam
Torsten Wichert
Nur in der FOR Schleife will sie nicht funktionieren.
Die kleine Schleife ist o.k., die große bricht nach dem ersten Laufwerk ab.
@echo off
setlocal enabledelayedexpansion
echo "" > %~dp0\Laufwerksinit.txt
SET LW=X
SET "var=A B C D E F G H I J K L M N O P Q R S T U V W X Y Z"
for %%a in (%var%) do (
SET LW=%%a
echo !LW!
)
timeout /t 10 /nobreak
for %%a in (%var%) do (
SET LW=%%a
REM Laufwerksaufruf und Initialisierung
SET i=6
echo Laufwerksaufruf und Initialisierung für Laufwerk: !LW! / sec_!LW!
IF NOT EXIST sec_!LW!\nul goto LWW
echo LW !LW! soll installiert werden
IF EXIST !LW!:\nul goto LWN
echo LW !LW! existiert noch nicht
start sec_!LW!\Prog\TrueCrypt.exe /l!LW! /v sec_!LW!\Data\My_own_mobile /q /b /w
Pause
IF EXIST !LW!:\nul goto LWE
SET Ausg="LW !LW! wurde nicht installiert"
goto LWZ
:LWE
SET Ausg="LW !LW! erfolgreich instaliert"
REM Start / wait
Call !LW!:\start.bat
goto LWZ
:LWN
SET Ausg="LW !LW! bereits vorhanden"
goto LWZ
:LWW
SET Ausg="LW sec_!LW! keine Datei"
SET i=0
:LWZ
cls
echo Laufwerksaufruf und Initialisierung für Laufwerk: !LW! / sec_!LW!
echo ----------------------------------------------------
echo %Ausg%
echo %Ausg% >> %~dp0\Laufwerksinit.txt
echo ++++++++++++++++++++++++++++++++++++++++++++++++++++
echo ENDE --- Laufwerksaufruf und Initialisierung für Laufwerk: !LW! / sec_!LW! --- ENDE
timeout /t %i% /nobreak
REM Laufwerksaufruf und Initialisierung Ende
)
pause
exit
Für Hinweise, was hier nicht exakt ist, bion ich dankbar.
Freundliche Grüße aus Potsdam
Torsten Wichert
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1157964155
Url: https://administrator.de/contentid/1157964155
Ausgedruckt am: 22.11.2024 um 22:11 Uhr
4 Kommentare
Neuester Kommentar
Sprungmarken innerhalb von For-Schleifen sind ungültig, weil alles was innerhalb der Klammern steht quasi für die CMD eine einzige Zeile ist
Batchprogrammierung GOTO-Sprungmarken innerhalb einer Schleife.
Wenn mit Sprungmarken dann mit call Subprozedur-Aufruf welche dann außerhalb des FOR-Loops platziert ist.
https://www.tutorialspoint.com/batch_script/batch_script_functions_with_ ...
Batchprogrammierung GOTO-Sprungmarken innerhalb einer Schleife.
Wenn mit Sprungmarken dann mit call Subprozedur-Aufruf welche dann außerhalb des FOR-Loops platziert ist.
for %%a in (%var%) do (
call :myprocedure %%a
)
goto :eof
:myprocedure
echo %1
exit /b
Na dann ab auf die 🏝️