我有一个批处理脚本,用于创建工作网络上大约30个位置的备份,它可以工作。
现在我正在编写同一个应用程序,但是在MFC VC++中,所以我使用小技巧来为字符串中的XCopy设置参数,然后执行它。
ShellExecute
.
m_destination
是来自editbox的变量,作为目标输入,文件的目的地。
代码是:
if (m_line1.GetCheck() == BST_CHECKED)
{
temp_dest = _T("/min /c xcopy \"\\\\pc_name.sub_domain.domain.local\\c$\\Users\\Test\\Desktop\\Test\\*.*\" \"") + m_destination + _T("\" /Y /E /Q");
ShellExecute(
GetSafeHwnd(),
L"open", // open edit print
L"C:\\Windows\\System32\\cmd.exe", // FILE PATH,
temp_dest, // PARAMETERS
NULL, // WORKING DIR
SW_HIDE); // WINDOW SHOW HIDE
m_status = "Line 1 - OK\r\n";
}
上面的代码可以工作,但是有些情况下,当目标PC关闭时,在cmd窗口中,它会显示“路径已更改或目标无法访问”(类似的内容)。在这种情况下,%errorlevel%有一些值,如果复制成功,则有一些值。然后你有条件向用户触发不同的警告。
问题是,我不知道如何抓住它来表示复制不成功。
我需要一些警告,从那台电脑复制是没有完成的。用这种方法复制后如何检索错误代码?
或者,如果有一个简单的函数可以将copyx替换为(**(所有内容)复制,并且能够定向到特定的目录,那么我想听听它。
提前谢谢。