を取得し、私は、単純なバッチファイルがあります。実行バッチファイルのxcopyと結果
xcopy source1 dest1
xcopy source2 dest2
を私は、.NETアプリケーションからこれを実行するのが好き、そしてプロセスの結果になるだろう(xcopyが成功すれば0を返し、失敗した場合は1を返します)、成功したかどうか(両方のファイルがコピーされたかどうか)をチェックします。どうやってやるの?
おかげ
を取得し、私は、単純なバッチファイルがあります。実行バッチファイルのxcopyと結果
xcopy source1 dest1
xcopy source2 dest2
を私は、.NETアプリケーションからこれを実行するのが好き、そしてプロセスの結果になるだろう(xcopyが成功すれば0を返し、失敗した場合は1を返します)、成功したかどうか(両方のファイルがコピーされたかどうか)をチェックします。どうやってやるの?
おかげ
私は 出力
1:DOSコマンドを実行するのはかなり簡単です:
System.Diagnostics.Process.Start("xcopy","source1 dest1");
2:出力を取得する2つの方法があります。最初はあなたのコマンドを "xcopy source1 dest1 >output.txt
"に変更し、後でtxtファイルを読むことです。第二は、異なるスレッドを実行することです:
var proc = new Process {
StartInfo = new ProcessStartInfo {
FileName = "xcopy",
Arguments = "source1 dest1",
RedirectStandardOutput = true
}
};
proc.Start();
string response=string.Empty;
while (!proc.StandardOutput.EndOfStream) {
response += proc.StandardOutput.ReadLine();
}
今response
は、あなたのコピーコマンドの応答が含まれています。これで戻り値(3)を解析するだけです。
最後の部分で問題が発生した場合は、SOを検索するか、新しい質問を書き込みます。
ありがとう、それは素晴らしいですが、whileループは決して私のために停止しません:\ –
それは "ファイルが既に存在する"問題でした。今それは動作します、もう一度ありがとう! –
あなたが必要とするものがすべてExitCodeであれば、過度に複雑に思えます。 – sgmoore
まだ非常に基本的な質問:)私はGoogleが答えを持っていることを意味し、そこにはSOの答えがたくさんあります。 –
[cmd.exeを呼び出さずに[system()(c#)の重複可能性があります](http://stackoverflow.com/questions/2794386/system-to-c-sharp-without-calling-cmd-exe) –
http://stackoverflow.com/questions/4251694/how-to-start-a-external-executable-from-c-sharp-and-get-the-exit-code-when-the-p(これは実際に示すようにどのようにexitcodeを取得する) – sgmoore