批处理脚本将一个文件夹的内容复制到C:\ Program Files(x86)位置下的另一个文件夹。不工作 - Acess Denied Error

时间:2014-05-12 09:23:48

标签: batch-file runas

我编写了简单的批处理脚本,它将一个文件夹的内容复制到另一个文件夹。我已经以管理员身份登录了该计算机。我正在使用windows-7机器。

文件夹1和文件夹2

文件夹的位置:

C:\Program Files (x86)\Folder1  
C:\Program Files (x86)\Folder2

如果我通过双击运行我的脚本,我将获得拒绝访问权限。如果我右键单击文件"以管理员身份运行"它正确复制。

预期行为: 在直接双击批处理脚本时,它应该复制文件。因为我已经以管理员身份登录。

等待来自编码人员的宝贵意见

2 个答案:

答案 0 :(得分:2)

以下脚本有助于将批处理文件作为“以管理员身份运行”运行。

@echo off
if _%1_==_payload_  goto :payload

:getadmin
    echo %~nx0: elevating self
    set vbs=%temp%\getadmin.vbs
    echo Set UAC = CreateObject^("Shell.Application"^)                >> "%vbs%"
    echo UAC.ShellExecute "%~s0", "payload %~sdp0 %*", "", "runas", 1 >> "%vbs%"
    "%temp%\getadmin.vbs"
    del "%temp%\getadmin.vbs"
goto :eof

:payload
    echo %~nx0: running payload with parameters:
    echo %*
    echo ---------------------------------------------------
    echo ADM is launching. DO NOT CLOSE THIS WINDOW.
    cd /d %2
    shift
    shift
    echo Name of the batch file which you want to run as admin
    CopyFiles.bat 
goto :eof

exit

答案 1 :(得分:0)

可能是您的用户组没有对命令处理器的读取和执行权限,

请看一下这里描述的解决方案

http://support.microsoft.com/kb/867466