【发布时间】:2010-10-20 09:36:02
【问题描述】:
我正在使用 ProcessStartInfo 用这样的文本文件修补文件(通过 cmd.exe):
app.exe temp.txt patch.ips
我写了这段代码:
ProcessStartInfo P = new ProcessStartInfo("app.exe");
P.Arguments = "temp.txt " + _patchpath;
P.CreateNoWindow = true;
P.UseShellExecute = false;
P.RedirectStandardOutput = true;
Process.Start(P);
app.exe 和 temp.txt 是相对于我的应用程序路径的(注意:app.exe 不是我的 C# 应用程序的名称,它只是我用于进程的程序),但 _patchpath 是绝对的像 D:\blah\file.ips 这样的路径。问题是,如果它是绝对的,则该过程不起作用(_patchpath 应该使用文件 temp.txt 进行修补),但如果它相对于我的应用程序目录则起作用。为什么会这样,我该如何解决?
如果我需要澄清,请告诉我。
【问题讨论】:
-
补丁路径可以包含空格吗?如果是这样,您需要用引号将其括起来。
-
你能提供一个真实的路径吗?我怀疑您的路径中有空格,在这种情况下,您必须用引号 (") 将路径括起来
-
它不起作用,没有任何补丁,因此该过程不起作用。另外,我将如何使用双引号?举个例子就好了。
-
关于重定向输出的任何信息?还是在 ExitCode 上?他们可能会有所帮助。
标签: c# arguments processstartinfo