Win 7 - 批处理问题,它不喜欢文件夹名称中的空格

Win 7 - 批处理问题,它不喜欢文件夹名称中的空格

您必须原谅我(或不原谅我),我对批处理编程的了解还相当基础。

我创建了几个批处理文件来帮助启动游戏,更改系统变量(将保存的游戏移动到游戏文件夹内)基本上使其可移植。

当它位于路径中没有空格的文件夹中时,它可以工作。但是当放入 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 变量来输出相对于计算机上文件位置的完整路径。

谢谢您的帮助!

答案1

大家别担心,答案其实很简单,有时我确实会打自己的头。

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

到:

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

(用引号括住路径)

问题解决了(啊!)

相关内容