Win-Batch - warum wird falscher Pfad übergeben
Moin!
ich habe noch einmal eine Frage - vermutlich etwas blind, oder es liegt am "fehlenden Kaffee" .... (Insider zum anderen Posting)
Es gibt folgendes Skript
und dabei kommt folgende Ausgabe beim Starten des neuen Skript.
ECHO ist ausgeschaltet (OFF).
"C:\Users\tappenbeckja\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"
copy "\\local.ebhl.de\ebl-daten\Abteilung\EBL_SRL\ALLG\MapEdit\MapEditDesktop_Updater.bat.lnk" "C:\Users\tappenbeckja\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"
1 Datei(en) kopiert.
Installation der neuen MED-Dateien
C:\Users\tappenbeckja\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\MapEdit_Updater.bat konnte nicht gefunden werden
Drücken Sie eine beliebige Taste . . .
Ich habe oben die Variable target_batch_neu eingesetzt und damit müsste die lnk-Datei aufgerufen werden. Es wird aber in der Ausgabe nur die Bat angezeigt und dann auch zurecht behauptet, dass es diese nicht gibt.
Hat einer von Euch den Durchblick?
Ich stehe im Dunkel.
Gruß Jan
ich habe noch einmal eine Frage - vermutlich etwas blind, oder es liegt am "fehlenden Kaffee" .... (Insider zum anderen Posting)
Es gibt folgendes Skript
echo off
echo Migration nach MapEditDesktop (GIS)
echo Jan Tappenbeck, jan.tappenbeck@ebhl.de
echo.
set source="\\local.ebhl.de\ebl-daten\Abteilung\EBL_SRL\ALLG\MapEdit\MapEditDesktop_Updater.bat.lnk"
set target="C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"
set target_batch_neu="C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\MapEditDesktop_Updater.bat.lnk"
set target_batch_alt_lnk="C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\MapEdit_Updater.bat.lnk"
set target_batch_alt="C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\MapEdit_Updater.bat"
echo.
echo
echo %target%
if exist %source% goto CopyMEDUpdater
echo ***********************************************************************
echo * SYSTEMMELDUNG * Kein Zugriff auf das Update-Programm *
echo ***********************************************************************
pause
goto Fehler
:CopyMEDUpdater
echo copy %source% %target%
copy %source% %target%
if %ERRORLEVEL%==0 goto MEDTester
echo ***********************************************************************
echo * SYSTEMMELDUNG * Fehler beim Kopieren einer BATCH-Datei *
echo ***********************************************************************
pause
goto Fehler
:MEDTester
if exist %target_batch_neu% goto CopyMEDUpdater
echo ***********************************************************************
echo * SYSTEMMELDUNG * Kein Zugriff auf neues MED-Batch *
echo ***********************************************************************
pause
goto Fehler
:CopyMEDUpdater
echo Installation der neuen MED-Dateien
start %target_batch_neu%
if %ERRORLEVEL%==0 goto DelOldBatch
echo ***********************************************************************
echo * SYSTEMMELDUNG * Fehler beim MED-Update *
echo ***********************************************************************
echo.
pause
goto Fehler
:Fehler
:Ende
pause
und dabei kommt folgende Ausgabe beim Starten des neuen Skript.
ECHO ist ausgeschaltet (OFF).
"C:\Users\tappenbeckja\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"
copy "\\local.ebhl.de\ebl-daten\Abteilung\EBL_SRL\ALLG\MapEdit\MapEditDesktop_Updater.bat.lnk" "C:\Users\tappenbeckja\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"
1 Datei(en) kopiert.
Installation der neuen MED-Dateien
C:\Users\tappenbeckja\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\MapEdit_Updater.bat konnte nicht gefunden werden
Drücken Sie eine beliebige Taste . . .
Ich habe oben die Variable target_batch_neu eingesetzt und damit müsste die lnk-Datei aufgerufen werden. Es wird aber in der Ausgabe nur die Bat angezeigt und dann auch zurecht behauptet, dass es diese nicht gibt.
Hat einer von Euch den Durchblick?
Ich stehe im Dunkel.
Gruß Jan
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 345307
Url: https://administrator.de/contentid/345307
Ausgedruckt am: 17.11.2024 um 15:11 Uhr
4 Kommentare
Neuester Kommentar
set target_batch_neu="C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\MapEditDesktop_Updater.bat.lnk"
Entferne das .lnk und starte die Batch mit call
.set target_batch_neu="C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\MapEditDesktop_Updater.bat"
call %target_batch_neu%
start "" %target_batch_neu%
Kanne Kaffee rüberschieb ...
Nur das er den Errorlevel damit so wie oben nicht auswerten kann da die Batch mit "start" in einem anderen Prozess ausgeführt wird und die Batch nicht auf das Ende wartet außer er verwendet /WAIT. Deswegen ist
call
bei Batches hier meist die bessere Wahl.