我有BAT脚本,这些都不是很棘手,在XP上运行良好。但是在Win 7上,在rmdir之后的mkdir中,大约有五分之一的执行给了一个神秘的Access Denied。 E.g。
S:\TLIB importing\! Curtains\2 To process>rmdir temp3allout /s /q
S:\TLIB importing\! Curtains\2 To process>mkdir temp3allout
Access is denied.
在此之后,当我在资源管理器中尝试时,制作该目录没有问题。再次运行thatBAT通常会成功。
知道这里发生了什么吗?
Win XP光盘是一款普通的2Gb硬盘。 Win 7光盘是2Gb Intel RST RAID1阵列,禁用缓存和刷新http://i.imgur.com/Ohqkg2t.png。
答案 0 :(得分:6)
当文件系统尚未完成删除目录时,会发生这种情况。
有时这会同步发生,即在rmdir命令完成之前,但有时会出现非常短但非零的延迟。 (在XP中它始终是同步的,IIRC。)
如果可能,请避免删除并立即重新创建目录;如果你无法避免,你需要检测失败并重试。
您可能还应该测试并在必要时重试rmdir;有时rmdir会遇到同样的问题而无法删除整个目录树。
答案 1 :(得分:0)
由于该目录或该目录中的文件已在某个编辑器中打开,因此首先必须从编辑器中关闭该文件/目录,然后再尝试。
这些错误通常是在我们创建一些目录然后将其删除时发生的,但是它被部分删除,并且我们使用相同的名称创建新目录。