我正在命令提示符下执行start 命令。 命令调用名为 D:\My script.cmd 的批处理文件并传递参数“Argument one”。这是我要执行的命令。
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/