作为一个个人项目,我正在尝试用批处理脚本制作一个非常简单的启动器(它和游戏文件夹位于的根目录中E:\
)询问你想玩什么游戏,选择后,游戏通过以下方式启动:
:: my/game/path.exe
Start "" E:/DNL/LR2/LR2.exe
- 这对我的大多数游戏都有效,但对某些游戏来说,它根本不起作用;我可以看到它执行了(我的游戏很旧并且分辨率发生了变化),但它很快就死机了;如果我手动启动游戏,它们可以正常工作。
- 我没有收到任何错误,并且认为问题可能是游戏的路径,尝试了相对和绝对路径都没有成功;我认为问题是脚本位于游戏文件夹之外,因为将其放在游戏文件夹内并执行命令可以
start
正常工作。
我不知道如何让它在文件夹外部工作,并考虑使用将其移动到文件夹内cd
;这是导航到游戏文件夹的正确方法吗?
答案1
如果批处理文件在文件夹内正常工作,那么您应该cd
进入它,正如您所提到的。
您应该使用cd /D
进入cd
另一个分区,因为/D
交换机会负责实际切换驱动器;如果您只使用cd
,则必须手动更改分区:
C:\> cd M:
M:\
# Notice how I'm still actually on C:
C:\> M:
M:\>
答案2
此外,@hextech 的有用答案pushd
可用于推送目录(虽然cd /d
这是一个很好的解决方案,但它还不支持 UNC 路径),但pushd
适用于 UNC 路径和不同的分区;您可以使用它popd
切换回过去的目录。
此外,您使用的路径是 Linux 格式,正确的 Windows 路径是:E:\DNL\LR2\LR2.exe
。