为什么mkdir偶尔会拒绝访问?

Chr*_*sJJ 4 cmd windows-7

我有BAT脚本,这些都不是很棘手,在XP上工作正常.但是在Win 7上,在rmdir之后的mkdir中,大约有五分之一的执行给了一个神秘的Access Denied.例如

S:\TLIB importing\! Curtains\2 To process>rmdir temp3allout /s /q

S:\TLIB importing\! Curtains\2 To process>mkdir temp3allout
Access is denied.
Run Code Online (Sandbox Code Playgroud)

在此之后,当我在资源管理器中尝试时,制作该目录没有问题.再次运行thatBAT通常会成功.

知道这里发生了什么吗?

Win XP光盘是一个普通的2Gb驱动器.Win 7光盘是一个2Gb Intel RST RAID1阵列,禁用缓存和刷新http://i.imgur.com/Ohqkg2t.png.

Har*_*ton 6

当文件系统尚未完成删除目录时会发生这种情况.

有时这会同步发生,即在rmdir命令完成之前,但有时会出现非常短但非零的延迟.(在XP中它始终是同步的,IIRC.)

如果可能,请避免删除并立即重新创建目录; 如果你无法避免,你需要检测失败并重试.

您可能还应该测试并在必要时重试rmdir; 有时rmdir遇到同样的问题,无法删除整个目录树.