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