2015-01-08 206 views
0

我有一個運行cmd.exe的如下面的一個vb.net應用:CMD.EXE將無法識別命令

Dim Port1 = CreateObject("WScript.Shell") 
    Port1.Run("cmd.exe") 
    Port1.Sendkeys("telnet ip address") 
    Port1.Sendkeys("{Enter}") 
    System.Threading.Thread.Sleep(6000) 

當CMD運行時,SendKeys一個錯誤顯示

「用 'telnet'不被識別爲內部或外部命令, 可操作的程序或批處理文件。「

我關閉了cmd窗口,打開了另一個cmd,並輸入了沒有問題的命令。

我需要cmd在vb.net中運行,而不是作爲單獨的文件運行。

運行在Microsoft Visual Studio中的vb.net終極2013年

更新:誰能告訴我,爲什麼它在做同樣的事情時,我的應用程序移動到另一臺計算機,並嘗試運行呢?

+0

檢查此SO回答http://stackoverflow.com/questions/13807429/running-cmd-commands-with-administrator-rights – Mitz

+3

我的水晶球說你正在運行的cmd.exe的32位版本。項目+屬性,編譯選項卡。將目標CPU設置更改爲AnyCPU並取消選中「首選32位」選項。 –

+0

@HansPassant你的水晶球可以看得很遠。我感謝你的幫助。 – Alenhj

回答

0

您的計算機上沒有安裝Telnet(據我所知,它沒有默認安裝在任何現代Windows版本上),或者它的安裝目錄不在PATH環境變量中。

將其安裝目錄添加到PATH,或在cmd.exe的參數中指定telnet.exe的完整路徑。

-1

CMD運行基於System32和.bat(批處理)或.exe的命令。您必須創建一個.exe或一個.bat文件並將其放到System32中才能使該命令正常工作。

0

您必須在計算機上啓用telnet,方法是開始>控制面板>程序和功能>打開或關閉窗口功能>檢查telnet客戶端或在運行中鍵入optionalfeatures並檢查telnet客戶端。該命令應該在那之後成功執行。