Вы должны простить меня (или нет), мои знания о пакетном программировании довольно элементарны.
Я создал несколько командных файлов, чтобы помочь запустить игру, изменить системную переменную (чтобы переместить сохраненные игры в папку с игрой), по сути, сделать ее переносимой.
Он работает, когда находится в папках без пробелов в пути. Однако, если сказать, Program Files (x86), он падает.
Вот код, который я использую для получения относительного родительского пути.
for %%B in (%~dp0\.) do set APPPATH=%%~dpB
Это важная часть, все остальное в сценарии зависит от этого.
Вот и все остальное:
: 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"
Возможно ли изменить этот код, чтобы он мог обрабатывать пробелы в сценариях? Мне удалось настроить мой шаблон, чтобы он не влиял ни на что другое, но эта часть пути - это место, где он падает.
Я использую переменную APPPATH для вывода полного пути относительно того, где файл находится на компьютере.
Спасибо за помощь!