asp.net环境下的cmd命令执行

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附上

时间: 2024-08-07 10:27:15

asp.net环境下的cmd命令执行的相关文章

JAVA 【精】从底层分析RunTime出错,Cmd命令执行正常

奥特曼超人杜锦阳曾经说过:"宁可在法度外灭亡,不在法度中生存." Cmd命令执行失败,可能大家开发中经常会有遇到如下问题,可是百度谷歌却出不来,博主踩的坑共享给大家: 报错 CreateProcess error=2, ϵͳÕҲ»µ½ָ¶ JAVA cmd执行失败 JAVA RunTime报错,cmd下却执行正常 ProcessBuilder异常CreateProcess error=2, ϵͳÕҲ»µ½ָ¶ JAVA CMD.EXE /C 的问题  这里使用的是数组命令,这里记录下这

ASP.NET环境下完整的treeview使用类

asp.net|treeview #region 声明//----------------------------------------------------------------------//// 作者: 李淼(Nick.Lee)//// ASP.NET环境下完整的treeview控件使用方案类//// 时间:2005-2-17// boyorgril@msn.com// QQ:16503096////------------------------------------------

Android下的CMD命令之关机重启及重启recovery_Android

Android刚兴起的时候,着实让一些小众软件火了一把,切水果,Tom猫,吹裙子就是其中的代表,当然还有实用性很强的关机重启软件,我们去百度上搜索一下. 截图: 一.了解CMD 命令 我们在cmd下进行的操作什么的,这里就不一一细说了我们只要知道下面这几条命令就可以了 重启:su -c reboot 关机:reboot -p 有了这个思路,我们就可以去实现了 activity_main.xml <LinearLayout xmlns:android="http://schemas.andr

cmd命令执行jav...-用cmd命令执行java程序后,无响应,无报错

问题描述 用cmd命令执行java程序后,无响应,无报错 如图,回车执行后,无响应,简单问题,新手诚心提问,望不吝赐教. 解决方案 可能你的那个jar包就没有输出. 解决方案二: 无响应,无报错,说明你运行的程序已经正确的运行,结果就是这样没有响应 解决方案三: 可能他就是这样的一个包,做了该做的,就没有输出 解决方案四: 还要看你的程序是否按期望的结果运行了.是不是做了对应的动作,如果没有,那么就有可能程序虽然没出错,但是有bug 解决方案五: 应该输出什么?程序要实现什么

Android下的CMD命令之关机重启及重启recovery

Android刚兴起的时候,着实让一些小众软件火了一把,切水果,Tom猫,吹裙子就是其中的代表,当然还有实用性很强的关机重启软件,我们去百度上搜索一下. 截图: 一.了解CMD 命令 我们在cmd下进行的操作什么的,这里就不一一细说了我们只要知道下面这几条命令就可以了 重启:su -c reboot 关机:reboot -p 有了这个思路,我们就可以去实现了 activity_main.xml <LinearLayout xmlns:android="http://schemas.andr

Win7环境下使用CMD删除任意文件的命令语法大全

  首先打开命令提示符管理员,打开运行输入:CMD 一.删除文件语法一: rd 目录名 /s rd /s 目录名 此两种是删除前进行询问删除包括目标目录在内的所有内容. 二.删除文件语法二: rd 目录名 /s /q rd /s /q 目录名 此两种是删除前不进行询问删除包括目标目录在内的所有内容. 三.去除属性并删除文件语法: CMD中长文件名.文件夹名 的快捷输入方式: 输入文件名.文件夹名称前两个字母,按 Tab 健,将自动填充完长文件名.在CMD下删除文件夹或文件,先要确定文件夹或文件是

asp.net c#调用运行cmd命令实现方法

ms的cmd命令行是一种重要的操作界面,一些在c#中不那么方便完成的功能,在cmd中几个简单的命令或许就可以轻松搞定,如果能在c#中能完成cmd窗口的功能,那一定可以使我们的程序简便不少. asp教程.net c#源码   using system; using system.diagnostics; namespace business { /// <summary> /// command 的摘要说明. /// </summary> public class command {

Linux/Unix环境下的make命令详解

无论是在Linux还是在Unix环境中,make都是一个非常重要的编译命令.不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或make install.利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百个源文件的应用程序,使用make和makefile工具就可以简洁明快地理顺各个源文件之间纷繁复杂的相互关系.而且如此多的源文件,如果每次都要键入gcc命令进行编译的话,那对程序员来说简直就是一场灾难.而make工具则可自动完成编译工作,并且可以

LINUX学习(三)在Linux环境下运行DOS命令

          Linux系统提供了一组称为mtools的可移植工具,可以让用户轻松地从标准的DOS软盘上读.写文件和目录.它们对DOS和Linux环境之间交换文件非常有用.它们是不具备共同的文件系统格式的系统之间交换文件的有力手段.             对于一个MS-DOS的软盘,只要把软盘放在软驱中,就可以利用mtools提供的命令来访问软盘上的文件. mtools的主要命令如下: mcd 目录名 改变MSDOS目录: mcopy 源文件 目标文件 在MSDOS和Unix之间复制文件