2

UltraCompareと呼ばれるサードパーティの比較ツールを使用して2つのフォルダを比較しようとしています。次の行はプログラムを呼び出して2つのファイルを開きます...しかし、これはそれらを開く以外には何もしません。さらに、フォルダに対しては正しく機能しません。

Process.Start("C:\\Program Files\\IDM Computer Solutions\\UltraCompare\\uc.exe", 
textBoxContents1 + " " + textBoxContents2);

次のコマンドライン呼び出しを使用して、2つのフォルダーを開き、それらのフォルダーで比較を実行し、結果を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();

引数を含む3行目がまだ機能しないのはなぜだろうか...

更新2:

私の間違い。動作中です!! UltraCompareにフォルダを表示しませんが、出力を書き込んで保存しています。みんなありがとう!

4

3 に答える 3

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();
于 2013-01-29T16:34:23.380 に答える
5
Process.Start(new ProcessStartInfo
{
   FileName = @"C:\Program Files\IDM Computer Solutions\UltraCompare\uc.exe",
   Arguments = String.Format("\"{0}\" \"{1}\"", textBoxContents1, textBoxContents2)
});
于 2013-01-29T16:37:29.190 に答える
1

引数にも引用符を使用してください。スペースのいずれtextBoxContents1かまたはtextBoxContents2スペースが含まれている場合、あなたはバストされます!

于 2013-01-29T16:33:42.870 に答える