我正在从命令提示符执行 start 命令。 命令调用名为 D:\ My script.cmd 的批处理文件,并传递参数“ Argument one ”。这是我要执行的命令。
C:\Users\ABCUser>start "D:\My script.cmd" "Argument one"
但是将错误消息判断为系统无法找到文件Argument one。 我不明白为什么命令正在搜索文件。文件内容我的script.cmd。
@echo off
cls
echo "Hello"
echo %1
我错过了什么或命令语法错了吗?此命令甚至不适用于没有空格的文件名。
答案 0 :(得分:5)
这是众所周知的启动/ cmd.exe处理cmd的错误,也是带引号的参数
原因是,start
使用cmd.exe / k来启动新任务
cmd / k和cmd / c的帮助解释说,在这种情况下,第一个和最后一个引号被删除。
另外你使用了start命令错误。
这应该有效,因为调用就像假人一样压制引用问题
start "Title" call "D:\My script.cmd" "Argument one"
答案 1 :(得分:1)
您可以使用cmd.exe /c "D:\My script.cmd" arg1 arg2
如果出现问题,您可以使用/ k切换/ c,这将使cmd打开,以便检查错误。
GL,
Refael