- @echo off
-
- >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
-
- if '%errorlevel%' NEQ '0' (
- echo 请求管理员权限... >> %LOGPATH%
- goto UACPrompt
- ) else ( goto gotAdmin )
- :UACPrompt
- echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
- echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
- "%temp%\getadmin.vbs"
- exit /B
- :gotAdmin
- if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
- pushd "%CD%"
- CD /D "%~dp0"
-
- SET CURRENTDIR=%CD%
- ECHO %CURRENTDIR%
- for /f "delims=" %%i in ('dir /b %CURRENTDIR%\sp\*.*') do (
- echo %%i
- xcopy /s /Y /f %CURRENTDIR%\sp\%%i "%CURRENTDIR%\spbak\"
- )
- pause
复制代码 ,
上述的是批处理的代码,这个代码如果不加获取管理员权限部分能正常的执行,完成复制功能。加上了获取管理员权限后,窗口一闪而过,在for那一行就失败了,,有木有大佬帮忙分析下那里的问题。
谢谢啦 |