在W10电脑下进行批处理文件时,你会发现很多批处理文件在运行时都会提示需要管理员权限,这时你就要手动设置以管理员身份运行才能进行操作,这样的半自动化操作实在太烦人了。如果我们能为批处理文件自动添加管理员权限,是不是就快多了?因为这样的话,我们双击运行就可以直接进行操作了。那么,在W10电脑下要如何让批处理文件自动添加管理员权限呢?
步骤如下:
想要给批处理文件自动添加管理员权限并不难,只要使用小编提供的代码就可以轻松实现自动获取权限的功能。把如下代码复制到记事本中,并保存为 .bat 格式即可(文件名可自拟);
- 01:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- 02:: 软媒魔方自动添加批处理文件管理员权限 ::
- 03:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- 04@echo off
- 05CLS
- 06ECHO.
- 07ECHO ================================
- 08ECHO 软媒魔方获取批处理文件管理员权限
- 09ECHO ================================
- 10:init
- 11setlocal DisableDelayedExpansion
- 12set "batchPath=%~0"
- 13for %%k in (%0) do set batchName=%%~nk
- 14set "vbsGetPrivileges=%temp%/OEgetPriv_%batchName%.vbs"
- 15setlocal EnableDelayedExpansion
- 16:checkPrivileges
- 17NET FILE 1>NUL 2>NUL
- 18if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges )
- 19:getPrivileges
- 20if '%1'=='ELEV' (echo ELEV & shift /1 & goto gotPrivileges)
- 21ECHO.
- 22ECHO ********************************
- 23ECHO 请求 UAC 权限批准……
- 24ECHO ********************************
- 25ECHO Set UAC = CreateObject^("Shell.Application"^) > "%vbsGetPrivileges%"
- 26ECHO args = "ELEV " >> "%vbsGetPrivileges%"
- 27ECHO For Each strArg in WScript.Arguments >> "%vbsGetPrivileges%"
- 28ECHO args = args ^& strArg ^& " " >> "%vbsGetPrivileges%"
- 29ECHO Next >> "%vbsGetPrivileges%"
- 30ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%vbsGetPrivileges%"
- 31"%SystemRoot%/System32/WScript.exe" "%vbsGetPrivileges%" %*
- 32exit /B
- 33:gotPrivileges
- 34setlocal & pushd .
- 35cd /d %~dp0
- 36if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul & shift /1)
- 37:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- 38:: 以下为需要运行的批处理文件代码 ::
- 39:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
- 40rem 本行以下可修改为你需要的bat命令(从上面三行冒号开始到下面都可删改)
- 41ECHO 欢迎使用软媒魔方!
- 42ECHO.
- 43pause
复制代码::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 软媒魔方自动添加批处理文件管理员权限 :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::@echo offCLSECHO.ECHO ================================ECHO 软媒魔方获取批处理文件管理员权限ECHO ================================:initsetlocal DisableDelayedExpansionset "batchPath=%~0"for %%k in (%0) do set batchName=%%~nkset "vbsGetPrivileges=%temp%/OEgetPriv_%batchName%.vbs"setlocal EnableDelayedExpansion:checkPrivilegesNET FILE 1>NUL 2>NULif '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges ):getPrivilegesif '%1'=='ELEV' (echo ELEV & shift /1 & goto gotPrivileges)ECHO.ECHO ********************************ECHO 请求 UAC 权限批准……ECHO ********************************ECHO Set UAC = CreateObject^("Shell.Application"^) > "%vbsGetPrivileges%"ECHO args = "ELEV " >> "%vbsGetPrivileges%"ECHO For Each strArg in WScript.Arguments >> "%vbsGetPrivileges%"ECHO args = args ^& strArg ^& " " >> "%vbsGetPrivileges%"ECHO Next >> "%vbsGetPrivileges%"ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%vbsGetPrivileges%""%SystemRoot%/System32/WScript.exe" "%vbsGetPrivileges%" %*exit /B:gotPrivilegessetlocal & pushd .cd /d %~dp0if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul & shift /1)::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 以下为需要运行的批处理文件代码 :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::rem 本行以下可修改为你需要的bat命令(从上面三行冒号开始到下面都可删改)ECHO 欢迎使用软媒魔方!ECHO.pause
以上代码就是为你的bat内容获取管理员权限用的,加在你的代码之前就可以用了。运行效果如下:
图片说明:如果你的系统开启了UAC,那么就需要运行后批准一下(别嫌麻烦,最好开启UAC,比较安全)
图片说明:运行示例(有小伙伴嫌CMD丑,所以你可以在属性→颜色中调下背景透明度,再换个喜欢的壁纸……❤节日快乐❤)
这个代码也支持Win7/Win8.1系统,效果如下(Windows7为例):
以上就是W10纯净版让批处理文件自动获取管理员权限的方法,大家学会这个技巧,以后进行文件批处理就方便多了。那么批处理文件做完了,却发现没办法固定到开始菜单和任务栏怎么办呢?没关系,小编为大家带来了参考教程:《W10纯净版如何将批处理文件固定到开始菜单?》