Batch-Datei bricht bei for Befehl ab: kann syntaktisch an dieser Stelle nicht verarbeitet werden
Hallo zusammen,
leider bin ich über die Suche nicht fündig geworden und erhoffe mir hier Hilfe.
Über ein von einem Dienstleister zur Verfügung gestellte Batch-Skript soll eine vom selben Dienstleister gelieferte Java-Software mittels mitgelieferte Java-Umgebung gestartet werden. Allerdings bricht das Batch mittendrin ab.
Mithilfe eines Echo-On- und Pause-Befehls konnte ich die Abbruchmeldung herausfinden:
Die Fehlermeldung lautet: "[PFAD-DATEINAME].jar kann syntaktisch an dieser Stelle nicht verarbeitet werden."
Es sind ziemlich viele *.jar-Dateien, die verarbeitet werden müssen und bei mehreren Durchläufen bricht das Batch an unterschiedlichen Stellen ab.
Der Aufrufbefehl im Batch lauet:
set BATCHCLIENTPATH=%~sdp0
set CLASSPATH=.
for %%i in (%BATCHCLIENTPATH%studio\plugins\*.jar) do ( call :exec %%i )
Laut Hersteller sei mit der Batch-Datei alles in Ordnung.
Weiß hier jemand Bescheid, woran der Abbruch liegen kann und warum es bei hunderten *jars klappt und bei dann bei jedes Mal anderen nicht?
Bei Rückfragen gebe ich gerne Auskunft (soweit ich darf
).
Vielen Dank,
Florian
PS: ich bin kein Progammierer, daher entschuldigt bitte meine fachlich nicht perfekte Ausdrucksweise
leider bin ich über die Suche nicht fündig geworden und erhoffe mir hier Hilfe.
Über ein von einem Dienstleister zur Verfügung gestellte Batch-Skript soll eine vom selben Dienstleister gelieferte Java-Software mittels mitgelieferte Java-Umgebung gestartet werden. Allerdings bricht das Batch mittendrin ab.
Mithilfe eines Echo-On- und Pause-Befehls konnte ich die Abbruchmeldung herausfinden:
Die Fehlermeldung lautet: "[PFAD-DATEINAME].jar kann syntaktisch an dieser Stelle nicht verarbeitet werden."
Es sind ziemlich viele *.jar-Dateien, die verarbeitet werden müssen und bei mehreren Durchläufen bricht das Batch an unterschiedlichen Stellen ab.
Der Aufrufbefehl im Batch lauet:
set BATCHCLIENTPATH=%~sdp0
set CLASSPATH=.
for %%i in (%BATCHCLIENTPATH%studio\plugins\*.jar) do ( call :exec %%i )
Laut Hersteller sei mit der Batch-Datei alles in Ordnung.
Weiß hier jemand Bescheid, woran der Abbruch liegen kann und warum es bei hunderten *jars klappt und bei dann bei jedes Mal anderen nicht?
Bei Rückfragen gebe ich gerne Auskunft (soweit ich darf
Vielen Dank,
Florian
PS: ich bin kein Progammierer, daher entschuldigt bitte meine fachlich nicht perfekte Ausdrucksweise
3 Antworten
- LÖSUNG Meierjo schreibt am 2021/02/22 um 18:17:00 Uhr
- LÖSUNG frapep schreibt am 2021/02/23 um 11:42:45 Uhr
- LÖSUNG TK1987 schreibt am 2021/02/23 um 12:21:22 Uhr
- LÖSUNG frapep schreibt am 2021/02/23 um 11:42:45 Uhr
LÖSUNG 2021/02/22 um 18:17 Uhr
Hallo
Sieht so aus, als hast du am Ende des Dateinamens noch einen Leerschlag drin.
Das hat Batch gar nicht gern
Ich würde probieren, den Dateinamen inklusive Pfad in Anführungszeichen zu packen, dann sollte das Problem nicht mehr bestehen
Etwa so (ungetestet):
Gruss
Sieht so aus, als hast du am Ende des Dateinamens noch einen Leerschlag drin.
Das hat Batch gar nicht gern
Ich würde probieren, den Dateinamen inklusive Pfad in Anführungszeichen zu packen, dann sollte das Problem nicht mehr bestehen
Etwa so (ungetestet):
for %%i in ("%BATCHCLIENTPATH%studio\plugins\*.jar") do ( call :exec %%i )
LÖSUNG 2021/02/23 um 11:42 Uhr
Hallo,
vielen Dank für den Tipp. Das hat aber leider noch nicht geklappt. Er bricht wieder an einer scheinbar zufälligen Stelle ab.
Hier einmal das komplette Skript inkl der Anführungszeichen im for-Befehl:
Vielleicht hilft das jemandem weiter um das Problem zu lösen.
vielen Dank für den Tipp. Das hat aber leider noch nicht geklappt. Er bricht wieder an einer scheinbar zufälligen Stelle ab.
Hier einmal das komplette Skript inkl der Anführungszeichen im for-Befehl:
@echo on
REM the extended command for starting XYZ Studio
REM
REM start /min %BATCHCLIENTPATH%jre\bin\javaw.exe -Djava.net.useSystemProxies=true -Dhttp.proxyHost=HTTP_PROXY_HOST -Dhttp.proxyPort=HTTP_PROXY_PORT -Dhttps.proxyHost=HTTPS_PROXY_HOST -Dhttps.proxyPort=HTTPS_PROXY_PORT -Dhttp.nonProxyHosts=HTTP_NON_PROXY_HOSTS -cp %CLASSPATH% com.XYZ.studio.ws.launcher.InstallerLauncher
REM
REM -Djava.net.useSystemProxies=true should be removed if the system proxies are not required
REM -Dhttp.proxyHost=HTTP_PROXY_HOST and -Dhttp.proxyPort=HTTP_PROXY_PORT indicate the proxy host and port, when HTTP proxy is required
REM -Dhttps.proxyHost=HTTPS_PROXY_HOST and -Dhttps.proxyPort=HTTPS_PROXY_PORT indicate the proxy host and port, when HTTPS proxy is required
REM -Dhttp.nonProxyHosts=HTTP_NON_PROXY_HOSTS indicates the hosts that should be accessed without going through the proxy
REM
set BATCHCLIENTPATH=%~sdp0
set CLASSPATH=.
for %%i in ("%BATCHCLIENTPATH%studio\plugins\*.jar") do ( call :exec %%i )
REM the command for starting XYZ Studio
start /min %BATCHCLIENTPATH%jre\bin\java.exe -Djava.net.useSystemProxies=true -cp %CLASSPATH% com.XYZ.studio.ws.launcher.InstallerLauncher
goto :eof
:exec
set CLASSPATH=%CLASSPATH%;%*
:eof
pause
LÖSUNG 2021/02/23 um 12:21 Uhr
Moin,
versuche es mal damit:
Sollte den selben Zweck erfüllen und weniger fehleranfällig sein.
Gruß Thomas
versuche es mal damit:
@echo on
Setlocal EnableDelayedExpansion
REM the extended command for starting XYZ Studio
REM
REM start /min %BATCHCLIENTPATH%jre\bin\javaw.exe -Djava.net.useSystemProxies=true -Dhttp.proxyHost=HTTP_PROXY_HOST -Dhttp.proxyPort=HTTP_PROXY_PORT -Dhttps.proxyHost=HTTPS_PROXY_HOST -Dhttps.proxyPort=HTTPS_PROXY_PORT -Dhttp.nonProxyHosts=HTTP_NON_PROXY_HOSTS -cp %CLASSPATH% com.XYZ.studio.ws.launcher.InstallerLauncher
REM
REM -Djava.net.useSystemProxies=true should be removed if the system proxies are not required
REM -Dhttp.proxyHost=HTTP_PROXY_HOST and -Dhttp.proxyPort=HTTP_PROXY_PORT indicate the proxy host and port, when HTTP proxy is required
REM -Dhttps.proxyHost=HTTPS_PROXY_HOST and -Dhttps.proxyPort=HTTPS_PROXY_PORT indicate the proxy host and port, when HTTPS proxy is required
REM -Dhttp.nonProxyHosts=HTTP_NON_PROXY_HOSTS indicates the hosts that should be accessed without going through the proxy
REM
set BATCHCLIENTPATH=%~sdp0
set CLASSPATH=.
for %%i in ("%BATCHCLIENTPATH%studio\plugins\*.jar") do set "CLASSPATH=!CLASSPATH!;%%i"
REM the command for starting XYZ Studio
start /min %BATCHCLIENTPATH%jre\bin\java.exe -Djava.net.useSystemProxies=true -cp %CLASSPATH% com.XYZ.studio.ws.launcher.InstallerLauncher
Gruß Thomas