批处理文件中以管理员身份复制文件

3

我有一个批处理文件,可以将文件从一个文件夹复制到许多不同的文件夹中。

这个批处理文件的目的是像一个简单的安装程序(没有注册表编辑)一样,使其他人更容易使用我正在分发的一组文件。因为这是广泛分发的,它需要在从XP开始的Windows操作系统上工作。这些文件需要移动到程序的程序文件夹(这个可以),他们的文档文件夹(也可以),以及所有用户开始菜单中的程序文件夹(不行)。

到目前为止,我尝试使用xcopy和robocopy都没有成功,因为它们都告诉我“拒绝访问”。即使使用“以管理员身份运行”也无法解决问题。如果您能想到除了批处理文件之外更有效的方法来实现我的目标,我很乐意听取建议。

xcopy /q /y ".\add_ui.bat" "%PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs\My Program\Add.bat"

我相信我错过了一些简单的技巧。预先感谢!

2
你可能使用了错误的路径。请展示你的代码,并告诉我们你所针对的Windows版本。 - Harry Johnston
已进行编辑以显示。感谢您的回复! - user2997716
只要从以管理员身份运行的控制台窗口中运行,并且“我的程序”文件夹已经存在,那么该命令(在Windows Vista或更高版本上)似乎没有明显的问题。当然,Windows XP的路径是不同的。 - Harry Johnston
2个回答

2

您需要具有本地管理员权限才能写入该文件夹,而且您的批处理文件需要以提升的权限运行(以管理员身份运行)。


有没有什么办法可以避开这个问题? - user2997716
不,这是无法绕过的。您必须将文件放在“所有用户”开始菜单中吗?您能否将它们放在当前用户的开始菜单中? - aphoria
很遗憾,这是一个现有程序的附加功能,它使用所有用户开始菜单。它是为低技术能力用户而设计的,所以如果我使用当前用户的开始菜单,会让他们感到困惑。我不完全依赖.bat文件,你有什么建议吗?可能有更简单的方法吗?非常感谢你到目前为止的回答! - user2997716
如果“以管理员身份运行”成功,则您拥有本地管理员权限。 - Harry Johnston
@HarryJohnston 没错,你说得对。我的原始回答没有表达清楚。 - aphoria

0
只有一个问题。以管理员身份运行批处理文件时,CMD会移动到\Winodws\System32,因此复制变得不可能,因为要复制的文件不再位于根目录(即\Windows\system32),而是回到了批处理文件所在的位置。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接