如果我在命令窗口中运行此命令,则运行正常,给出了我期望的结果。我首先通过CD FilePath
进入 FilePath 。然后运行带有标志的命令,并将输出发送到 DestPath 。
C:\Program Files (x86)\ProgramName\FileName.exe -f > C:\Temp\Test.txt
但是,它没有通过以下过程运行。我经历了很多论坛并尝试了解决方案,但没有一个奏效。
public const string FilePath = @"C:\\Program Files (x86)\\ProgramName\\FileName.exe";
public const string DestPath = @"C:\\Temp\\Test.txt";
public static void GetResults()
{
ProcessStartInfo process = new ProcessStartInfo
{
UseShellExecute = true,
CreateNoWindow = false,
FileName = @"cmd",
};
string Command = @"/c " + FilePath + " -f > " + DestPath;
process.Arguments = Command;
process.WindowStyle = ProcessWindowStyle.Hidden;
Process.Start(process);
Thread.Sleep(2000);
关于如何纠正此问题或我可能做错了什么的任何建议?
答案 0 :(得分:0)
因此,最终,我相信您的问题是试图启动命令提示符并使其进行输出重定向。老实说,我不确定这是否受支持,这也不是C#问题。如果您确实真的想这样做,我建议编写一个小的批处理文件(或者可能是powershell脚本),该文件可以执行所需的操作并获取所需的参数……可能只是输出文件名,然后直接启动它。
也就是说,请允许我建议您改用内置于流程类中的输出重定向:
然后您可以直接将输出读取到程序中并对其进行任何操作...可能只是将其写到文件中...但是我强烈怀疑您确实想在内部做一些事情它,并且它实际上根本不需要写入文件中(因为您正在将其写入到临时文件夹中)。