为什么将文件夹移动到具有管理员权限的程序文件夹时访问被拒绝?

Why is access denied on moving a folder to program files folder with administrator privileges?

所以我想将一个名为test的文件夹移动到目录"%PROGRAMFILES(x86)%"。 但是,即使以运行管理员身份批处理文件,它也不会真正动起来。我收到错误消息:

Access denied.

这是我当前的批处理文件:

@echo off
move %~dp0test "%PROGRAMFILES(x86)%"
pause

%~dp0 是文件夹的当前目录(在我的例子中是桌面)。

那么如何解决这个问题,将文件夹 test 移动到 "%PROGRAMFILES(x86)%" 而不会出现拒绝访问错误?

在您的情况下,访问被拒绝错误消息可能是由于 运行 批处理文件已经具有管理员权限

  • 要移动的目录中的文件当前正被应用程序打开,或者
  • 要移动的目录是运行进程(批处理文件)的当前目录,或者
  • 管理员帐户对您的桌面文件夹没有权限,这不太可能,但有可能,因为它是您的用户配置文件中的文件夹,而不是管理员帐户的用户配置文件中的文件夹。

在前两种情况下,无法删除指定的目录,结果是共享访问被拒绝的错误消息。所以这里的问题可能不是目标文件夹中的权限,而是源文件夹及其文件的共享访问权限。

顺便说一下:最好使用 move "%~dp0test" "%ProgramFiles(x86)%",因为批处理文件的路径可能包含 space,即使当前情况并非如此,批处理文件位于 Windows 桌面文件夹中在 Windows Vista 或更高版本上,只要您的用户名不包含 space 字符。