2013-10-09 35 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