我正在尝试使用名为UltraCompare的第三方比较工具比较两个文件夹。以下行调用该程序并打开两个文件...但除了打开它们之外没有做任何事情,加上它对文件夹无法正常工作。
Process.Start("C:\\Program Files\\IDM Computer Solutions\\UltraCompare\\uc.exe",
textBoxContents1 + " " + textBoxContents2);
我想使用以下命令行调用打开两个文件夹,对它们进行比较,并将结果存储在output.txt中: uc -d -dmf“c:\ dir1”“c :\ dir2“-o”c:\ output.txt“
另外,我需要为文件夹使用变量而不是硬编码路径。
我如何将其用于我的C#代码?
更新1:
我已根据您的建议修改了我的代码:
var p = new System.Diagnostics.Process();
p.StartInfo.FileName = "C:\\Program Files\\IDM Computer Solutions\\UltraCompare\\uc.exe";
p.StartInfo.Arguments = String.Format("-d -dmf \"{0}\" \"{1}\" -o c:\\output2.txt",
textBoxContents1, textBoxContents2);
p.Start();
我想知道为什么包含参数的第三行仍然不起作用......
更新2:
我的错误。现在正在工作!!只是不显示UltraCompare中的文件夹,但它仍在编写并保存输出。谢谢你们!
答案 0 :(得分:6)
您可以使用
yourProcess.StartInfo.Arguments = " .....";
样品
var p = new System.Diagnostics.Process();
p.StartInfo.FileName = "C:\\Program Files\\IDM Computer Solutions\\UltraCompare\\uc.exe";
p.StartInfo.Arguments = String.Format("-d -dmf {0} {1} -o c:\output.txt",textBoxContents1, textBoxContents2);
p.Start();
答案 1 :(得分:5)
Process.Start(new ProcessStartInfo
{
FileName = @"C:\Program Files\IDM Computer Solutions\UltraCompare\uc.exe",
Arguments = String.Format("\"{0}\" \"{1}\"", textBoxContents1, textBoxContents2)
});
答案 2 :(得分:1)
确保你也为参数使用引号!
如果textBoxContents1
或textBoxContents2
中的任何一个包含空格,则会被破坏!