我有一个简单的批处理文件:
xcopy source1 dest1
xcopy source2 dest2
我想从.NET应用程序运行它,并获取进程的结果(据我所知,xcopy在成功时返回0,在失败时返回1),以检查它是否成功(两个文件都被复制)或不。我怎么能这样做?
由于
答案 0 :(得分:2)
这个
有三个问题1:运行DOS - 命令非常简单:
System.Diagnostics.Process.Start("xcopy","source1 dest1");
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();
}
now response
包含复制命令的响应。现在你所要做的就是解析返回值(3)。
如果您在上一部分遇到问题,请搜索SO或为其撰写新问题。