1 工具类
1.1 获取管理员权限
放到文件开头即可。
1、方法一
@ echo off
rem ======获取管理员权限========
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"
rem ======获取管理员权限 over========
echo 666
pause
2、方法二
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"
方法三
%1 mshta vbscript:CreateObject(“Shell.Application”).ShellExecute(“cmd.exe”,"/c %~s0 ::","",“runas”,1)(window.close)&&exit
方法四
@ echo off
rem ======获取管理员权限========
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
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" )
rem ======获取管理员权限 over========
echo 666
echo 当前运行路径是:%CD%
echo 已获取管理员权限
pause
五、命令行CMD批处理自动以管理员身份运行的正确方法(修正了路径有空格时的问题)
无参数:
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c "^&chr(34)^&"%~0"^&chr(34)^&" ::","%cd%","runas",1)(window.close)&&exit
一个参数
%2 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c "^&chr(34)^&"%~0"^&chr(34)^&" "^&chr(34)^&"%~1"^&chr(34)^&" ::","%cd%","runas",1)(window.close)&&exit
2 案例类
2.1 读取txt
name,age,score
tom,28,95
charles,32,99
逐行读取txt文本内容,并且用,
分割,然后放到变量中
@echo off
setlocal
for /f "tokens=1-3 delims=," %%i in (test.txt) do (
%%i
rem set age=%%j
rem set score=%%k
rem echo 姓名=%name% 年龄=%age% 分数=%score%
echo 姓名=%%i,%%j,%%k
)
pause