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