当我的程序发现自己过时了,它运行更新程序'data1.bat'。
在这种情况下,我发现cmd完全忽略了命令中的双引号
这是代码行(带有variables(Original)):
start "" "%dirofbatch%data1.bat" "%downloc%" "%dirofbatch%" "%lver%" "%lget%"
这是代码行(扩展了这些variables):
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
我发现,每当它运行时,它启动我的桌面上的Minecraft,试图login用户名“User \ Minecraft”,密码“饥饿”,然后尝试login到服务器“游戏”…
是否有可能将参数与空格传递给另一个批处理程序而不发生这种情况?
这是一个错误的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"