偶尔从.NET C#批处理文件xcopy问题

时间:2016-11-02 09:00:11

标签: c# .net batch-file xcopy

我有以下批处理文件:

net use %3 password /USER: username

xcopy %1 %3
echo %errorlevel% >> logfile.txt

xcopy %2 %3
echo %errorlevel% >> logfile.txt

exit

%1和%2是我要复制到共享目录(%3)的源文件。 如果我以传统的方式运行这个批处理文件(使用正确的值),它可以随时运行,但如果我从.NET运行它,它只能在第一个(可能是第二个)时间运行,然后第一个xcopy返回错误代码4和第二个错误代码未注册(我想,第二个xcopy根本没有运行)。另外,如果我写if exist %3 echo exist,我会收到9009错误代码。

.NET代码:

 String batchFile = GetConfigValue("batch_path");

 Process process = new Process();
 ProcessStartInfo startInfo = new ProcessStartInfo();
 startInfo.FileName = batchFile;
 startInfo.Arguments = String.Format("\"{0}\" \"{1}\" \"{2}\"", file1Path, file2Path, this.sharedDirectory);
 startInfo.UseShellExecute = false;
 startInfo.RedirectStandardOutput = true;

 process.StartInfo = startInfo;

 bool b = process.Start();
 process.WaitForExit();

 Int32 exitCode = process.ExitCode;
 process.Close();

process.Start()之后的代码没有运行,也没有例外。

该过程可能会锁定网络共享或类似的东西。我试着致电process.Dispose()process.Kill(),但他们没有帮助。

0 个答案:

没有答案