VM虚拟机服务批处理.bat

@echo off
rem@by_shengli
color 0a
for /f "skip=3 tokens=4" %%i in ('sc query "VMAuthdService"') do set "str=%%i" &goto :next
:next
rem 截取到的字符串
rem echo %str%
if /i "%str%" =="RUNNING" (
echo 服务VMware Authorization Service正在运行 
) else (
echo 服务VMware Authorization Service已停止 
)

for /f "skip=3 tokens=4" %%i in ('sc query "VMnetDHCP"') do set "str=%%i" &goto :next
:next
rem 截取到的字符串
rem echo %str%
if /i "%str%" == "RUNNING" (
echo 服务VMware DHCP Service正在运行 
) else (
echo 服务VMware DHCP Service已停止
)

for /f "skip=3 tokens=4" %%i in ('sc query "VMware NAT Service"') do set "str=%%i" &goto :next
:next
rem 截取到的字符串
rem echo %str%
if /i "%str%" == "RUNNING" (
echo 服务VMware NAT Service正在运行 
) else (
echo 服务VMware NAT Service已停止
)

for /f "skip=3 tokens=4" %%i in ('sc query "VMUSBArbService"') do set "str=%%i" &goto :next
:next
rem 截取到的字符串
rem echo %str%
if /i "%str%" == "RUNNING" (
echo 服务VMUSBArbService正在运行 
) else (
echo 服务VMUSBArbService已停止
)

for /f "skip=3 tokens=4" %%i in ('sc query "VMwareHostd"') do set "str=%%i" &goto :next
:next
rem 截取到的字符串
rem echo %str%
if /i "%str%" == "RUNNING" (
echo 服务VMwareHostd正在运行 
) else (
echo 服务VMwareHostd已停止
)
pause

echo =-=-=-=-= 请用管理员权限运行=-=-=-=-=
echo.


GOTO :MEMU  
:MEMU
echo.=-=-=-=-=VMware 手工启动批处理=-=-=-=-=  
rem echo 1:启用VM虚拟机服务及虚拟网络连接
rem echo 2: 禁用VM虚拟机服务及虚拟网络连接
rem choice /c:12 /m "请根据选项选择..."
rem 使用时应该加/c:参数,c: 后应写提示可输入的字符或数字,之间无空格。冒号是可选项。
rem 使用时加也可选择加/m:参数,m:后应写提示说明语。
rem if errorlevel 1 goto :one
rem if errorlevel 2 goto :two
echo.    1  启动VMware各项服务  
echo.    2  关闭VMware各项服务  
echo.    3  exit  
echo  请输入选择项目的序号:  
set /p  ID=  
if "%id%"=="1"  goto one  
if "%id%"=="2" goto two 
if "%id%"=="3" echo 按任意键退出...  
pause>nul & exit


PAUSE  

:one 
echo 正在启用服务...
net start "VMAuthdService" 
net start "VMnetDHCP" 
net start "VMware NAT Service" 
net start "VMUSBArbService"
net start "VMwareHostd"
echo 正在启用网络连接...
netsh interface set interface "VMware Network Adapter VMnet1" enable
netsh interface set interface "VMware Network Adapter VMnet8" enable
echo 网络连接VMware Network Adapter VMnet1、VMware Network Adapter VMnet8启动成功 
echo.
goto :MEMU 


:two 
rem net 用于打开没有被禁的服务 net start 服务名
rem sc可以打开被禁的服务 sc config 服务名 start= demand //手动
rem sc condig 服务名 start= auto    //自动
rem sc config 服务名 start= disabled //禁用
rem sc start 服务名
rem sc stop 服务名
echo 正在关闭服务... 
net stop "VMware Workstation Server"
net stop "VMAuthdService" 
net stop "VMnetDHCP" 
net stop "VMware NAT Service" 
net stop "VMUSBArbService"
net stop "VMwareHostd"
echo 正在禁用网络连接... 
netsh interface set interface "VMware Network Adapter VMnet1" disable
netsh interface set interface "VMware Network Adapter VMnet8" disable
echo 网络连接VMware Network Adapter VMnet1、VMware Network Adapter VMnet8禁用成功 
echo.
goto :MEMU 

参数不要靠在一起,会报错,之间要留空格

 

pause 就是暂停命令,执行时会在命令行窗口显示“请按任意键继续. . .”并等待你按键。pause > nul的作用是同样的,区别是不显示“请按任意键继续. . .”这些字,nul相当于空文件,把这些文字隐去了。

 

choice  /c 后写选项(字符或者数字),之间不要加空格

 3 choice /c:1234 /m:"please select"
 4 if %errorlevel%==4 goto end
 5 if %errorlevel%==3 goto three
 6 if %errorlevel%==2 goto two
 7 if %errorlevel%==1 goto one

 

if /I "%str%" == "RUNNING"

 

在cmd窗口中:for %I in (command1) do command2

在批处理文件中:for %%I in (command1) do command2

 

for /f  "delims= skip= tokens= 1,3-5,*" %%i in (test.txt) do echo %%I   %%j  %%k

delims 是分隔符号,语句默认以空格键或跳格键作为分隔符号

skip 跳过几个

tokens 是选择 默认选择第一个

*代表的是剩下的成一个部分

 

忽略以指定字符打头的行:eol=

 

for /f %%i in (……) do (……) 语句有好几种变形语句,不同之处在于第一个括号里的内容:有的是用单引

号括起来,有的是用双引号包住,有的不用任何符号包裹,具体格式为:

引用:

1、for /f %%i in (文件名) do (……)

2、for /f %%i in ('命令语句') do (……)

3、for /f %%i in ("字符串") do (……)

 

这个时候,我们会吃惊地发现,区区一条for语句,竟然有多达6种句型:

 

1、for /f %%i in (文件名) do (……)

2、for /f %%i in ('命令语句') do (……)

3、for /f %%i in ("字符串") do (……)

4、for /f "usebackq" %%i in ("文件名") do (……)

5、for /f "usebackq" %%i in (`命令语句`) do (……)

6、for /f "usebackq" %%i in ('字符串') do (……)

 

 

至于 for /f 为什么要增加usebacq参数,我只为第4条语句找到了合理的解释:为了兼容文件名中所带的空格或&。

它在第5、6条语句中为什么还有存在的必要,我也不是很明白,这有待于各位去慢慢发现。 

 

 

 

 

 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值