2013-05-20 42 views
-6

一個批處理文件:當我嘗試運行該如何運行xp_cmdshell的

exec master..xp_cmdshell 'C:\f\alert.bat' 

我收到以下錯誤信息:

'C:\f\alert.bat' is not recognized as an internal or external command, 
operable program or batch file. 

我如何使用運行xp_cmdshell這個批處理文件?

編輯:上面的命令是逐字。我沒有使用任何有空格的參數。

+2

可能的重複http://stackoverflow.com/questions/3759331/escaping-command-parameters-passed-to-xp-cmdshell-to-dtexec – billinkc

+0

@billinkc從我能看到的問題的答案說,使用DOS 8.3的命名約定,正如你所看到的,我已經在做。我看到有兩個人對你的評論投了贊成票,雖然這讓我相信也許我錯過了一些非常明顯的東西。如果是這樣,請你指出一下嗎? –

+2

我的假設是,在編輯之前,'C:\ f \ alert.bat'是實際命令的存根。如果在我的xp_cmdshell調用中有空白,我可以重現您的錯誤消息。親自查看一下'exec master..xp_cmdshell'C:\ f \ alert.bat''我可以改變C:\ f c:\ DoesNotExist,只要有空格,就會返回「not recognized」錯誤信息。對此的解決方案是使用8.3命名約定或雙引號 - 這兩個都在參考問題中進行了演示。 – billinkc

回答

-4

我有幾臺服務器在運行,我試圖從遠程服務器而不是本地服務器運行這個命令。所以我得到這個錯誤,因爲批處理文件顯然不存在於遠程服務器上。

+2

糟糕的是你沒有發佈你得到的實際錯誤信息。 ''C:\ f \ alert.bat'不被識別爲內部或外部命令,可操作程序或批處理文件。「我實際上做了一些測試以找出你所看到的,但是我無法重新創建你發佈的錯誤你發佈的命令。 –

+0

@MikaelEriksson有時,如果我不得不從一臺計算機以外的計算機訪問SO,那麼顯然,我會輸入錯誤消息而不是複製/粘貼它。唯一的區別是真實的消息是'C:\ f \ alert.bat',而不是'alert.bat'。我傾向於想知道這是否真的讓你失望,或者你是否試圖在我的問題上挑選。 –

+0

你爲什麼這麼想?我們有沒有在我冒犯你的地方回答或評論過你的另一個問題?我知道我有時可能有點直接,所以如果是這樣,我真的很抱歉。 –

相關問題