2

当我的程序发现自己过时时,它会运行更新程序“data1.bat”。

在这种情况下,我发现 cmd 完全忽略了命令中的双引号

这是代码行(带有变量(原始)):

start "" "%dirofbatch%data1.bat" "%downloc%" "%dirofbatch%" "%lver%" "%lget%"

这是代码行(扩展了这些变量):

start "" "C:\Users\Hello\Desktop\Minecraft Client\Versions\4.7\data1.bat" "\\SERVER\Users\Test User\Minecraft Hunger Games Client v4.8" "C:\Users\Hello\Desktop\Minecraft Client\Versions\4.7" "4.7" "4.8"

而不是工作,它似乎看到:

start "" C:\Users\Hello\Desktop\Minecraft User\Minecraft Hunger Games

我发现每次运行时,它都会在我的桌面上启动我的世界,尝试使用用户名“User\Minecraft”登录,密码“Hunger”,然后尝试登录服务器“游戏”...

是否可以将带空格的参数传递给另一个批处理程序而不会发生这种情况?

4

1 回答 1

1

如果在命令的路径中是空格并且至少在一个参数中失败,则这是 的错误START或更好的错误。cmd

添加 CALL 的解决方法

start "" CALL "C:\Users\Hello\Desktop\Minecraft Client\Versions\4.7\data1.bat" "\\SERVER\Users\Test User\Minecraft Hunger Games Client v4.8" "C:\Users\Hello\Desktop\Minecraft Client\Versions\4.7" "4.7" "4.8"
于 2013-08-28T05:13:12.110 回答