需求:
我用自己的电脑 安装了k8s集群做测试,
每次都手动启动,有点麻烦, 所以就写了一个脚本,批量启动,停止。
在批处理(batch)脚本中,我们可以使用 REM 或 :: 来添加注释。
1- 注释
for 循环中 必须用REM 来注释, 否则出错
2- 获取变量值
%num%
3- 定义全局变量:
::定义变量
@echo off
set var1=D:\VM\5nodesk8s\10.0.0.108\10.0.0.108-master1.vmx
set var2=D:\VM\5nodesk8s\10.0.0.109\10.0.0.109-master2.vmx
脚本文件
(1)---for 循环的 (比较推荐)-------------------------
@echo off
>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" )
::定义变量
@echo off
set var1=D:\VM\5nodesk8s\10.0.0.108\10.0.0.108-master1.vmx
set var2=D:\VM\5nodesk8s\10.0.0.109\10.0.0.109-master2.vmx
set var3=D:\VM\5nodesk8s\10.0.0.110\10.0.0.110-master3.vmx
set var4=D:\VM\5nodesk8s\10.0.0.111-worker1\10.0.0.111-worker1.vmx
set var5=D:\VM\5nodesk8s\10.0.0.112-worker2\10.0.0.112-worker2.vmx
:: 定义 循环次数
set num=5
echo %var1%, %var2%, %var3%
@echo off
:start
echo 1(启动 k8s集群)
echo 2 (关闭 k8s集群)
set /P var="请选择你的设置:"
if %var%==1 goto start
if %var%==2 goto stop
:start
cls
::-------------------start 开始-------------------------------------by baimeidashu.com ------
@echo off
setlocal enabledelayedexpansion
for /L %%i in (1,1,%num%) do (
echo start !var%%i!
REM "D:\Program Files (x86)\VMware\VMware Workstation\vmware.exe" -x !var%%i!
"D:\Program Files (x86)\VMware\VMware Workstation\vmware.exe" -x !var%%i!
)
endlocal
::-------------------start 结束----------------------------------by baimeidashu---------
echo ** 启动完成 **
echo ------------------------------------------
pause
exit
:stop
cls
::-------------------stop 开始--------------------------------------by baimeidashu-----
@echo off
setlocal enabledelayedexpansion
for /L %%i in (1,1,%num%) do (
echo stop !var%%i!
"D:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe" stop "!var%%i!"
)
endlocal
::-------------------stop 结束----------------------------------------by baimeidashu---
echo ** stop 完成 **
echo ------------------------------------------
pause
exit
(2)--未用 for 循环-----------------
脚本文件:
@echo off
>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" )
@echo off
:start
echo 1(启动 k8s集群)
echo 2 (关闭 k8s集群)
set /P var="请选择你的设置:"
if %var%==1 goto start
if %var%==2 goto stop
:start
cls
ECHO "start 白眉大叔-master231"
"D:\Program Files (x86)\VMware\VMware Workstation\vmware.exe" -x "D:\3baimeidashu\1linuxVM\4k8s\baimei-10.0.0.231-master231\白眉大叔-master231.vmx"
ECHO "start 白眉大叔-master232.vmx"
"D:\Program Files (x86)\VMware\VMware Workstation\vmware.exe" -x "D:\3baimeidashu\1linuxVM\4k8s\baimei-10.0.0.232-master232\白眉大叔-master232.vmx"
ECHO "start 白眉大叔-master233.vmx"
"D:\Program Files (x86)\VMware\VMware Workstation\vmware.exe" -x "D:\3baimeidashu\1linuxVM\4k8s\baimei-10.0.0.233-master233\白眉大叔-master233.vmx"
echo ** 启动完成 **
echo ------------------------------------------
pause
exit
:stop
cls
ECHO "stop 白眉大叔-master231"
"D:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe" stop "D:\3baimeidashu\1linuxVM\4k8s\baimei-10.0.0.231-master231\白眉大叔-master231.vmx"
ECHO "stop 白眉大叔-master232.vmx"
"D:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe" stop "D:\3baimeidashu\1linuxVM\4k8s\baimei-10.0.0.232-master232\白眉大叔-master232.vmx"
ECHO "stop 白眉大叔-master233.vmx"
"D:\Program Files (x86)\VMware\VMware Workstation\vmrun.exe" stop "D:\3baimeidashu\1linuxVM\4k8s\baimei-10.0.0.233-master233\白眉大叔-master233.vmx"
echo ** 关闭完成 stop **
echo ------------------------------------------
pause
exit
双击运行程序:
选择 1 启动
参考: