我知道这个问题可能是以其他方式提出来的,但我所阅读和尝试过的所有内容还没有解决我的问题,所以我希望在这里得到一些帮助以解决我的问题。
问题:
我需要在Windows Azure中的服务器上将文件从本地驱动器移动到网络驱动器(网络驱动器是SharePoint映射库)(不要认为azure部分很重要,但它提供了上下文)。
我的想法是安排一个任务来运行一个bat文件来移动我需要移动的文件并经常这样做(每5到10分钟)。我创建的批处理文件在手动运行批处理文件时执行了我需要的操作,但在任务运行时却没有。
这是批处理文件:
struct MyHandlerType {
// Wrap these fields in `Option`
pub map: Option<BTreeMap<Token, A>>,
pub pool: Option<Pool<B>>
}
// ...
fn ready(&mut self, event_loop: &mut EventLoop<MyHandlerType>,
token: Token, events: EventSet) {
// Move these values out of `self`
let map = self.map.take().unwrap();
let pool = self.pool.take().unwrap();
let a : &mut A = self.map.get_mut(token).unwrap();
let b : B = a.b.take().or_else(|| self.pool.new()).unwrap();
// Continue working with `a` and `b`
// ...
// Restore these values to `self`
self.map = Some(map);
self.pool = Some(pool);
}
您可以看到它在运行robocopy.exe之前和之后写入日志文件 当任务运行时,它会写入这两个日志文件,因此我知道批处理文件至少在运行 您还可以看到我已经尝试在源中使用UNC路径作为驱动器,这是因为我正在读取任务调度程序可能无法正确拾取驱动器号。当我将机器名称放入目的地并自行运行批处理文件或使用调度程序时,它会出错。
以下是任务采取的行动:
这是任务常规标签
非常感谢任何帮助。
答案 0 :(得分:0)
经过几次运行后,我遇到了与Robocopy相同的错误:
错误3(0x00000003)获取文件系统目标类型
我认为这与robocopy在目标上有大量文件时扫描目的地有关。当我启动复制作业并且Azure目标为空时,它工作正常。
无论如何,我认为你应该尝试使用AzCopy command,因为它应该不那么容易出错,而且速度更快,因为它是为这种事情而设计的。它的命令行开关类似于robocopy,因此它应该让人感觉非常熟悉。