C# Winform 实现批量处理的操作
自己编写winform 程序点击一个按钮自动执行运行 “命令行测试.bat”,以达到双击”命令行测试.bat“一样的效果,这是一个压缩文件的功能,我的代码如下:
private void button4_Click(object sender, EventArgs e)
{
RunBAT(@"C:\Documents and Settings\Administrator\桌面\同步工具\4.7Z绿色版\命令行测试.bat","");
}
public string RunBAT(string epath, string arguments) //让 MASS-DELETE运行状态显示出来
{
System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo();
psi.FileName =@"C:\Documents and Settings\Administrator\桌面\同步工具\4.7Z绿色版\命令行测试.bat";
psi.UseShellExecute = false;
psi.Arguments = arguments;
psi.CreateNoWindow = false;
psi.RedirectStandardOutput = true;
string s = "";
System.Diagnostics.Process p = System.Diagnostics.Process.Start(psi);
while (p.WaitForExit(0) == false)
{
s += p.StandardOutput.ReadLine() + "\r\n";
}
return s;//返回.bat编辑内容
}
或者直接是:
private void button4_Click(object sender, EventArgs e)
{
Process p = Process.Start(@"C:\Documents and Settings\Administrator\桌面\同步工具\4.7Z绿色版\命令行测试.bat");
}
问题是并不像双击.bat那样能实现压缩的效果,请大家帮忙,好多地方都要执行这样的批量处理文件的代码,在线等候!
------解决方案--------------------是你BAT文件的问题,虽然你执行的是C:\Documents and Settings\Administrator\桌面\同步工具\4.7Z绿色版\命令行测试.bat,但是CMD的当前目录是在你应用程序的启动目录,所以有可能会造成无法执行BAT中的可执行文件。
你可以尝试把这个WINFORM程序拷贝到BAT同目录来运行 或者你BAT文件第一行加上一条CD命令 切换到正确的工作目录。
------解决方案--------------------分太少,不贴代码了啊
之前做过这样的程序,在窗口调用程序很简单了。关键是在你的批处理的路径问题,你可以在你的批处理的前几行加上切换目录的命令,就搞定了