时间:2021-05-20
Bat.aspx:
程序代码
复制代码 代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Bat.aspx.cs" Inherits="Bat" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
<br />
<asp:Label ID="Label1" runat="server" Text="Label" Width="304px"></asp:Label></div>
</form>
</body>
</html>
Bat.aspx.cs:
程序代码 程序代码
复制代码 代码如下:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Diagnostics;
public partial class Bat : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//
}
protected void Button1_Click(object sender, EventArgs e)
{
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.CreateNoWindow = true;//设置为false将会看到程序窗口
p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;//启动进程时窗口状态
p.StartInfo.RedirectStandardOutput = true;
//p.StartInfo.FileName = Server.MapPath("a.bat");
p.StartInfo.FileName = @"E:\a.bat";//如果a.bat在System32文件夹中,此处只需填写文件名即可
p.StartInfo.WorkingDirectory = @"E:\";
p.StartInfo.Arguments = Server.UrlEncode(TextBox1.Text);
p.Start();
Label1.Text = p.StandardOutput.ReadToEnd();
p.WaitForExit();
p.Close();
}
}
a.bat:
程序代码
复制代码 代码如下:
@echo off
md %random%
set i=1
:loop
ping 1 -n 1 -w 1000 2>nul 1>nul
set /a i=%i%+1
if %i%==20 echo 返回值:%1^<br^>服了你,这么有耐心 & exit
goto loop
说明:当批处理和aspx不在同一目录中时,最好用WorkingDirectory设置启动的进程的初始目录为批处理所在目录,否则如上例中批处理新建的目录就应在aspx所在目录中而不是批处理所在目录了!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
学习PowerShell,我们不指望通过C#编程去搞定所有事情,我们应该记住cmd.exe或者说批处理给我们留下的宝贵财富——通过调用外部程序去解决问题。调用了
DOS下的批处理可以调用来REM和::来注释.但都是行注释.所以我在想有没有什么方法可以实现段注释.就像C#一样的用可以很方便对大段代码进行注释保留.思
本文实例讲述了C#动态执行批处理命令的方法。分享给大家供大家参考。具体方法如下:C#动态执行一系列控制台命令,并允许实时显示出来执行结果时,可以使用下面的函数。
Call从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。call命令接受用作调用目标的标签。如果在脚本或批处理文件外使用Call,它将不会在命令行
本文实例讲述了C#调用执行外部程序的实现方法。分享给大家供大家参考。具体分析如下:这里以调用notepad为例演示C#调用执行外部程序的方法。classTest