gpt4 book ai didi

c#-2.0 - 如何从 C# Windows 窗体应用程序执行 .bat 文件?

转载 作者:行者123 更新时间:2023-12-02 12:57:58 38 4
gpt4 key购买 nike

我需要做的是让 C# 2005 GUI 应用程序根据用户的请求调用 .bat 和几个 VBScript 文件。这只是假期结束前的权宜之计,我可以用 C# 来编写它。我可以毫无问题地执行 VBScript 文件,但无法执行 .bat 文件。当我在 C# 应用程序中“单击”执行 .bat 文件时,DOS 窗口打开并关闭得非常快,并且测试 .bat 文件不执行 - 错误是“Windows 无法将 bat 识别为内部或外部命令”返回到 DOS 框中。如果我只是双击 .bat 文件或从命令提示符手动运行它,它就会执行。我还需要 .bat 文件以静默方式执行,除非需要用户交互 - 该脚本将 11k+ 文件复制到联网计算机上的文件夹中,有时 Windows 会“忘记”目标是否是文件或目录,并要求用户告诉它它是什么(这是一个完全不同的问题,不在这里讨论......不用说我对此感到恼火)。

到目前为止,在我的 C# 源代码中,我有以下内容:

Process scriptProc = new Process();


if (File.Exists("c:\\scripts\\batchfile1.bat"))
{

scriptProc.StartInfo.FileName = @"cscript";
scriptProc.StartInfo.Arguments = ("cmd.exe", "/C C:\\scripts\\batchfile1.bat"); // Wacky psuedo code //
scriptProc.Start();
scriptProc.WaitForExit(1500000);
scriptProc.Close();

}

if (!File.Exists("c:\\scripts\\batchfile1.bat"))
{
}

我知道这段代码不起作用 - 但这本质上就是我想要它做的事情。我正在寻找类似的 .bat 文件。我假设我必须告诉系统使用 cmd 来运行 .bat。我不知道如何做到这一点。我已经检查过这个site这是针对 C# 2003 的。对我来说没有太大帮助,因为我对 C# 很陌生。

编辑:使用凯文的帖子我再次尝试。与该帖子相同的解决方案脚本,但为我进行了修改,因为我不需要重定向:

 System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = "C:\\scripts\\batchfile1.bat";
proc.StartInfo.RedirectStandardError = false;
proc.StartInfo.RedirectStandardOutput = false;
proc.StartInfo.UseShellExecute = false;
proc.Start();
proc.WaitForExit();

最佳答案

这是您要寻找的内容:

Service hangs up at WaitForExit after calling batch file

这是关于为什么服务无法执行文件的问题,但它显示了执行此操作所需的所有代码。

关于c#-2.0 - 如何从 C# Windows 窗体应用程序执行 .bat 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/394036/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com