Good catch
@Darkman.X
o0Julia0o schrieb:
Das klappt nicht:
set Starter="test.exe"
start "%~dp0\%Starter%"
genausowenig wie:
set Starter="test.exe"
start "%~dp0"\%Starter%
oder wie:
set Starter="test.exe"
start %~dp0\"%Starter%"
ooder wie:
set Starter="test.exe"
start "%~dp0"\"%Starter%"
@o0Julia0o , das ist ja nicht dein erster Thread zum Thema Batch. Ich gebe dir jetzt einen ultimativen Tip, den ich dir schon mindestens einmal gegeben habe: Debug Echos.
Du probierst jetzt gerade komplett planlos alle möglichen Kombinationen und Schreibweisen aus, mal mit " hier, mal mit " da und am besten auch immer noch zur Sicherheit noch ein \ dazu. Wenn du auch nur einmal ein Echo vor deiner start-Zeile gesetzt hättest, würdest du sofort sehen, dass da einfach kein gültiger Pfad rauskommt.
Aus obigen Varianten kommt folgender Output, wenn man
echo start .... macht:
start "C:\Users\Raijin\\"test.exe""
start "C:\Users\Raijin\"\"test.exe"
start C:\Users\Raijin\\""test.exe""
start "C:\Users\Raijin\"\""test.exe""
Preisfrage: Warum funktioniert wohl keine dieser Varianten (abgesehen von
@Darkman.X 's Einwand bezüglich des Titels)?
Bei Variante 1 hast du die Variable Starter bereits mit "" umschlossen, die tauchen natürlich ebenfalls im zusammengesetzten Pfad auf und gehören da aber nicht hin, weil " kein zulässiges Zeichen IN einem Pfad ist.
Bei Variante 2 gilt dasselbe, aber hier hast du zusätzlich noch die dp0-Variable mit "" umschlossen, also doppelt falsch
Bei Variante 3 und 4 hast du noch mehr ""
Hinzu kommt, dass %~dp0 bereits ein abschließendes \
enthält und du ein zweites dahinterbastelst. Das funktioniert zwar, ist aber bestenfalls als unschön zu betrachten und im Zweifelsfalle wird es sogar ebenfalls als fehlerhafter Pfad interpretiert, wenn man so einen Pfad beispielsweise an die test.exe übergeben würde und diese die // nicht mag.
Korrekt wäre daher:
Code:
set Starter=test.exe
start "EinTitelOderKeiner" "%~dp0%Starter%"
Wie auch schon in anderen Threads rate ich dir abermals, dich lieber mit PowerShell zu beschäftigen. Batch is a bitch...