2014-07-11 97 views
-1

我在使用gnu「find」在我的c#app中移植時出現問題。讓我更好地解釋:如何在c#中使用gnu命令#

在我的winform應用程序中我有一個按鈕。當我按下這個按鈕我需要啓動這個命令(輸入cmd.exe這個效果很好):

gfind training_set\positives\*.jpg -exec identify -format "%i 1 0 0 %w %h \n" {} ; > training_set\positives.dat 

我用這個:

string find = "gfind.exe "; 
string command = textBox4.Text + "\\positives\\*.jpg -exec identify -format \" %i 1 0 0 %w %h \n\" {} /; > " + textBox4.Text + "\\positives.dat"; 
System.Diagnostics.Process.Start("CMD.exe", "/C "+find + command); 

但外殼打開,並告訴我,我的天堂」 t通過任何參數-exec

任何想法?

編輯: 這項工作: 串路徑= textBox4.Text + @ 「\陽性\」; System.Diagnostics.Process.Start(「CMD.exe」,「/ C cd」+ textBox4.Text +「& & gfind positives \ *。png -exec identify -format;>」+ textBox4.Text +「\ positives .DAT「);

但 -format需要這樣的說法: '我%1 0 0%重量%H \ n'{}這種方式不工作 ...

EDIT2: OK差不多了..

System.Diagnostics.Process.Start("CMD.exe", "/C cd " + textBox4.Text + " && gfind positives\\*.png -exec identify -format \"%i 1 0 0 %w %h\" {} ; > " + textBox4.Text + "\\positives.dat"); 

確定這工作,但打印在同一行中的每個條目:

positives\3LiIIH8.png 1 0 0 28 20positives\5NoLpfy.png 1 0 0 28 20positives\7XNpLX0.png 1 0 0 28 20 

我需要每行一個條目,如:

positives\3LiIIH8.png 1 0 0 28 20 
positives\5NoLpfy.png 1 0 0 28 20 
positives\7XNpLX0.png 1 0 0 28 20 

\ n打破sintax

回答

0

解決...報價和轉義字符讓我瘋了

System.Diagnostics.Process.Start("CMD.exe", "/C cd " + textBox4.Text + " && gfind positives\\*.png -exec identify -format \"%i 1 0 0 %w %h\\n\" {} ; > " + textBox4.Text + "\\positives.dat");