3

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

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

但由于系统找不到文件参数一而收到错误消息。 我不明白为什么命令正在搜索文件。我的 script.cmd 文件的内容。

@echo off
cls
echo "Hello"
echo %1

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

4

2 回答 2

5

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

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

这应该可以工作,因为调用就像一个假人来抑制引用问题

start "Title" call "D:\My script.cmd" "Argument one"
于 2013-10-09T15:49:08.853 回答
1

您可以使用cmd.exe /c "D:\My script.cmd" arg1 arg2

如果有问题,您可以使用 /k 切换 /c,这将使 cmd 保持打开状态,以便您检查错误。

升,

雷菲尔

于 2013-10-10T09:46:22.883 回答