繁体   English   中英

批处理-将变量参数传递到包含空格的批处理文件中

[英]Batch - Pass variable parameters onto batch files that contain spaces

当我的程序发现自己已过时时,它将运行更新程序“ 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

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

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

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

一种解决方案,以添加一个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"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM