需求:
我用自己的电脑 安装了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 启动
参考: