Win 7 - problem wsadowy, nie lubi spacji w nazwach folderów


0

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!


Pamiętaj, aby dodać tagi OS do swojego pytania, aby ludzie wiedzieli, do jakiego systemu operacyjnego się odnosi.
Julian Knight

Sposób, w jaki robisz komentarz w partii, jest albo z REM, albo z :: 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=cJ0P7JSC
barlop

Dziękuję Barlop, widziałem to w innym kodzie w tym samym celu, więc po prostu skopiowałem zgaduję, dzięki za informacje!
Ctrlaltdenied

Odpowiedzi:


1

Nieważne ludzie, odpowiedź była zwodniczo prosta, czasami uderzam się w głowę.

: Get path of parent folder (relative)
for %%B in (%~dp0\.) do set APPPATH=%%~dpB

Do:

: Get path of parent folder (relative)
for %%B in ("%~dp0\.") do set APPPATH=%%~dpB

(obuduj ścieżkę cytatami)

Problem rozwiązany (Gah!)


Nie zapomnij przyjąć własnej odpowiedzi - myślę, że musisz poczekać 24 godziny.
Julian Knight
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.