我正在从命令提示符执行 start 命令。
命令调用名为 D:\My script.cmd 的批处理文件并传递参数“ 参数一 ”。这是我要执行的命令。

   C:\Users\ABCUser>start "D:\My script.cmd" "Argument one"

但收到错误消息为 系统找不到文件参数一。
我不明白为什么命令正在搜索文件。文件 My script.cmd 的内容。
@echo off
cls
echo "Hello"
echo %1

我是否遗漏了什么或命令语法错误?此命令甚至不适用于没有空格的文件名。

最佳答案

这是 start/cmd.exe 处理 cmd 和带引号的参数的众所周知的错误。
原因是,start 使用 cmd.exe/k 来启动新任务。
cmd/k 和 cmd/c 的帮助说明,在这种情况下,第一个和最后一个引号被删除。

此外,您错误地使用了启动命令。

这应该有效,因为调用就像一个虚拟对象来抑制引用问题

start "Title" call "D:\My script.cmd" "Argument one"

关于Windows 启动命令无法执行批处理文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19276438/

10-16 23:25