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

标签 windows batch-file cmd

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

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

最佳答案

这是 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"

关于windows - 批处理 - 将可变参数传递到包含空格的批处理文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18479856/

相关文章:

c# - 来自包含 UTF-8 字符的批处理文件的命令行参数会导致问题

windows - 哪些命令不能与 cmd 命令一起出现在一行/Windows 运行框中?

jar - Java JDK .jar 归档工具替代方案

windows - 我如何计算出在内核调试 session 中使用 WinDBG 等待的事件

javascript - 启动 Node 服务器,每天在特定时间加载页面

java - “UNC paths are not supported” 命令中出现 “SVN Info” 错误

java - 如何在Windows 8上执行 "jps''命令?

windows - 将字符串替换为多个文件的批处理

mysql - 如何使批处理文件将 sql 查询写入包含 < 的文件而不转储结果

windows - 检测文件是否在批处理文件中打开