2013-10-09 32 views
3

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

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

,但得到的错误mesasge为系统无法找到文件参数之一。 我不明白为什么命令正在搜索文件。文件内容我的script.cmd。

@echo off 
cls 
echo "Hello" 
echo %1 

我是否缺少某些东西或命令语法错误?这个命令甚至不适用于没有空格的文件名。

+0

这与'.net'或'c'无关。实际上,您指定的文件很可能不在那里,或者在执行“开始”(例如,权限)的命令提示符下无法访问。 –

+0

我目前无法访问Windows机器,但我怀疑它将文件视为新进程的标题,并将参数视为文件。尝试在文件名前添加一个空字符串'“”'。 –

+0

根据你所包含的内容,你不需要'开始'。你可以直接使用“D:\ My script.cmd”“Argument one”而不用'start'。 –

回答

5

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

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

这应该工作,作为呼叫就像一个假人,用以剿的报价问题

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

'call'是错误的。它用于命令/批处理文件本身,以执行其他批处理或命令文件。这里不需要。 (其余部分是正确的,但是。) –

+0

@kenwhite你应该尝试它肯。杰布在这里。 – foxidrive

+0

@KenWhite我第一次看到'call'技巧,我也说它不能工作:-)看到我添加的解释 – jeb

1

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

如果你可以切换使用/ K的/ C一个问题,将离开CMD打开你考试系统错误..

GL,

Refael