批处理/ CMD移动不适用于文件夹

时间:2010-01-01 19:33:31

标签: windows-7 batch-file cmd move

我在SendTo文件夹中有一个简单的.bat(move.bat)文件,它使用上下文菜单将文件和目录从任何位置移动到指定的文件夹。这适用于XP。但是在Windows 7中,我收到了拒绝访问错误。 它甚至不能用作为admin(runas)打开的cmd。

move.bat的内容:

move %1 c:\specifiedfolder

4 个答案:

答案 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)

检查系统进程是否打开了您的任何文件。 您应该在尝试移动命令之前关闭所有文件