我在 SendTo 文件夹中有一个简单的 .bat (move.bat) 文件,它使用上下文菜单将文件和目录从任何位置移动到指定文件夹。这适用于XP。但是,在 Windows 7 中,我收到拒绝访问错误。它甚至不适用于以管理员身份打开的 cmd (runas)。
move.bat 的内容:
move %1 c:\specifiedfolder
我在 SendTo 文件夹中有一个简单的 .bat (move.bat) 文件,它使用上下文菜单将文件和目录从任何位置移动到指定文件夹。这适用于XP。但是,在 Windows 7 中,我收到拒绝访问错误。它甚至不适用于以管理员身份打开的 cmd (runas)。
move.bat 的内容:
move %1 c:\specifiedfolder
尝试让管理员拥有 takeown /F <filename>
(对于文件)和
takeown /f <foldername> /r /d y
(对于文件夹)的所有权,然后尝试移动文件或文件夹
在使用 cacls 实用程序获得所有权集管理文件权限以完全控制后:
cacls <folder> /T /G admin:F
在 Windows 7 中,您必须以管理员身份运行批处理。但是请确保在脚本开始时将 dir 更改为 homedir,因为当前 dir 将不同于以管理员身份运行时应有的目录。
或者,您可以使用管理员权限启动 cmd 窗口,然后您可以键入或拖放批处理将文件放入其中...
另一种方法是使用 /R 选项进行 xcopy,然后删除源...或者简单地使用 robocopy
robocopy %1 c:\specifiedfolder /E /IS /MOVE
但是您仍然需要删除跳过的文件...
我有同样的问题,所以做了一些实验。
从 Windows 7 开始,Windows 中目录的任何打开句柄似乎都会导致访问被拒绝。这包括在该目录中打开的资源管理器,以及通过网络使用该目录的人。
如果要重命名目录但保持路径相同,则可以使用 rename。即使在该目录中打开了诸如资源管理器窗口之类的打开句柄(窗口中的路径将被刷新),这也将起作用您可能用于自动网络备份等的任何内容。
如果权限设置不起作用,那么几乎可以肯定是资源管理器的打开句柄、从该目录运行的可执行文件或类似的东西。
检查系统进程是否打开了任何文件。您应该在尝试移动命令之前关闭所有文件