一個批處理文件:當我嘗試運行該如何運行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這個批處理文件?
編輯:上面的命令是逐字。我沒有使用任何有空格的參數。
可能的重複http://stackoverflow.com/questions/3759331/escaping-command-parameters-passed-to-xp-cmdshell-to-dtexec – billinkc
@billinkc從我能看到的問題的答案說,使用DOS 8.3的命名約定,正如你所看到的,我已經在做。我看到有兩個人對你的評論投了贊成票,雖然這讓我相信也許我錯過了一些非常明顯的東西。如果是這樣,請你指出一下嗎? –
我的假設是,在編輯之前,'C:\ f \ alert.bat'是實際命令的存根。如果在我的xp_cmdshell調用中有空白,我可以重現您的錯誤消息。親自查看一下'exec master..xp_cmdshell'C:\ f \ alert.bat''我可以改變C:\ f c:\ DoesNotExist,只要有空格,就會返回「not recognized」錯誤信息。對此的解決方案是使用8.3命名約定或雙引號 - 這兩個都在參考問題中進行了演示。 – billinkc