Musisz mi wybaczyć (lub nie) moją znajomość programowania wsadowego jest dość szczątkowa.
Stworzyłem kilka plików wsadowych, aby pomóc w uruchomieniu gry, zmienić zmienną systemową (aby przenieść zapisane gry w folderze gry) w zasadzie sprawić, że będzie przenośny.
Działa, gdy znajduje się w folderach bez spacji w ścieżce. Jednak gdy powiedzmy, Program Files (x86), to się kończy.
Oto kod, którego używam do uzyskania względnej ścieżki nadrzędnej.
for %%B in (%~dp0\.) do set APPPATH=%%~dpB
To jest ważna część, wszystko inne w skrypcie zależy od tego.
Oto reszta:
: Get path of parent folder (relative)
for %%B in (%~dp0\.) do set APPPATH=%%~dpB
set APPPATH2=%APPPATH%Microsoft Games\Freelancer\
: Modify path of Freelancer in the registry to point to the portable install
REG ADD "HKLM\SOFTWARE\Wow6432Node\Microsoft\Microsoft Games\Freelancer\1.0" /v AppPath /t REG_SZ /d "%APPPATH2%\" /f
: Set path for Saved Games
Set USERPROFILE=%APPPATH%
: Start Freelancer up
START "" "%APPPATH%Microsoft Games\Freelancer\EXE\Freelancer.exe"
Czy możliwe jest zmodyfikowanie tego kodu, aby mógł obsługiwać spacje w skryptach? Udało mi się skonfigurować mój szablon, aby nie wpływał na nic innego, ale ta część ścieżki jest tam, gdzie spada.
Używam zmiennej APP PATH, aby wyświetlić pełną ścieżkę względem miejsca, w którym znajduje się plik na komputerze.
Dzięki za pomoc!
::
Twój pojedynczy dwukropek działa, ale nie do końca tak, jak myślisz. Więc mógłbyś przejść do stworzonej przez siebie etykiety! Aby to udowodnić, spróbuj uruchomić ten plik wsadowy pastebin.com/raw.php?i=cJ0P7JSCOdpowiedzi:
Nieważne ludzie, odpowiedź była zwodniczo prosta, czasami uderzam się w głowę.
Do:
(obuduj ścieżkę cytatami)
Problem rozwiązany (Gah!)
źródło