我们通过流程运行Robocopy,因此我们可以在Robocopy命令失败后查看日志文件。有时,Robocopy会拒绝访问。当拒绝访问时,它非常不一致。使用管理员帐户运行。这是代码......
using (Process p = new Process())
{
Globals.lastCommand = string.Format("/C ROBOCOPY \"{0}\" \"{1}\" /MIR /J /LOG+:\"{2}\" /R:1 /W:10 /XF {3}", source, destination, Globals.tempLog, "*.bak");
p.StartInfo.Arguments = Globals.lastCommand;
p.StartInfo.Domain = "++++++++";
p.StartInfo.UserName = "+++++++";
string password = "++++++++";
for (int x = 0; x < password.Length; x++)
ssPwd.AppendChar(password[x]);
p.StartInfo.Password = ssPwd;
p.StartInfo.WorkingDirectory = source;
p.StartInfo.FileName = "CMD.EXE";
p.StartInfo.CreateNoWindow = true;
p.StartInfo.Verb = "runas";
p.StartInfo.UseShellExecute = false;
p.Start();
p.WaitForExit();
}
这是我们得到的错误:
2 \\MAD2014\SYNC\017 Alliance\004 Sebree Mining\917-5026\(0016) MA 10\DMP\MPA03\ARCHIVE\9175026_MA10_042914\
2 \\MAD2014\SYNC\017 Alliance\004 Sebree Mining\917-5026\(0016) MA 10\DMP\MPA03\ARCHIVE\9175026_MI10_110213\
6 \\MAD2014\SYNC\017 Alliance\004 Sebree Mining\917-5026\(0016) MA 10\DMP\MPA03\ARCHIVE\9175026_MI10_110213\SHP_FILES_9175026_MI10\
0 \\MAD2014\SYNC\017 Alliance\004 Sebree Mining\917-5026\(0016) MA 10\DMP\MPA03\COLLECTION\
12 \\MAD2014\SYNC\017 Alliance\004 Sebree Mining\917-5026\(0016) MA 10\DMP\MPA03\COLLECTION\Correspondence\
2014/07/27 20:31:49 ERROR 5(0x00000005)访问目的地目录\ lex2014 \ projects \ 017 Alliance \ 004 Sebree Mining \ 917-5026(0016)MA 10 \ DMP \ MPA03 \ COLLECTION \ Correspondence \ 访问被拒绝。
等待10秒......正在重试...... 2014/07/27 20:31:59 ERROR 5(0x00000005)访问目的地目录\ lex2014 \ projects \ 017 Alliance \ 004 Sebree Mining \ 917-5026(0016)MA 10 \ DMP \ MPA03 \ COLLECTION \ Correspondence \ 访问被拒绝。
错误:重试超出限制。
6 \\MAD2014\SYNC\017 Alliance\004 Sebree Mining\917-5026\(0016) MA 10\DMP\MPA03\COLLECTION\ITEM_08\
5 \\MAD2014\SYNC\017 Alliance\004 Sebree Mining\917-5026\(0016) MA 10\DMP\MPA03\COLLECTION\ITEM_09\
注意它是如何继续的。此外,如果在批处理文件中运行相同的Robocopy,则不会出现错误。此外,我们正在从一台服务器复制到另一台服务器。