在Windows批处理(batch)脚本中,您可以使用call
命令来调用另一个批处理脚本。call
命令允许您在一个批处理脚本中执行另一个脚本,并在执行完毕后返回到原始脚本的下一行继续执行。
下面是一个示例,展示了如何在批处理脚本中调用另一个批处理脚本:
脚本1:main.bat
@echo off
echo 正在执行主脚本...
call script2.bat
echo 主脚本继续执行...
脚本2:script2.bat
@echo off
echo 正在执行被调用的脚本...
在上面的示例中,main.bat
是主脚本,它使用call
命令调用了script2.bat
脚本。当script2.bat
执行完毕后,控制权将返回到main.bat
,并继续执行其后面的命令。
您可以将script2.bat
放在与main.bat
相同的目录下,或者提供完整的路径来调用它。
请注意,当使用call
命令调用另一个脚本时,被调用的脚本中的任何环境更改(如设置变量)都将在调用脚本中保持有效,直到调用脚本结束。如果您希望在被调用的脚本中进行的更改不影响调用脚本,您可以考虑在被调用的脚本中使用setlocal
和endlocal
命令来创建局部环境。
脚本执行管理员权限说明
自动判断是否管理员权限运行脚本如下
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" )
pushd "%CD%"
CD /D "%~dp0"
:begin
注:只需要在主脚本上写一下,备调用脚本就直接是使用管理员权限执行了