我正在尝试从 C# 程序执行 .cmd 进程。当我在命令行中运行该进程时,即
C:\Directory\Process.cmd -x 1000 -y 1000 C:\Input\input.txt
我得到了适当的结果(在这种情况下,这意味着该进程将文件写入:
C:\Output\output.txt
但是,当我尝试从一个简单的 C# 程序运行此过程时,不会创建输出文件。以下是我的一些尝试:
尝试 1)
try
{
string processName = @"C:\Directory\Process.cmd";
string argString = @" -x 1000 -y 1000 C:\Input\input.txt"; //The extra space in front of the '-x' is here on purpose
Process prs = new Process();
prs.StartInfo.UseShellExecute = false;
prs.StartInfo.RedirectStandardOutput = false;
prs.StartInfo.FileName = processName;
prs.StartInfo.Arguments = argString;
prs.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
prs.Start()
}
catch (Exception e)
{
Console.Writeline(e.Message);
}
尝试 2)
try
{
System.Diagnostics.Process.Start(@"C:\\Directory\\Process.cmd", " -x 1000 -y 1000 C:\\Input\\input.txt";
}
catch (Exception e)
{
Console.Writeline(e.message);
}
现在,在这两种情况下,都没有抛出异常,并且 Process.cmd 被访问(它在 shell 中打印状态更新),但该进程不会创建任何输出文件。我尝试调用 Process.cmd 的方式是否有问题,当我直接从命令行运行时它可以正常工作,但当我尝试从我的 C# 程序调用它时它不能正常工作?