- 帖子
- 60
- 积分
- 85
- 技术
- 0
- 捐助
- 0
- 注册时间
- 2022-3-18
|
[其他] 批处理按逻辑关闭指定的虚拟机,搞不来,求大神赐教.
本帖最后由 iii888iii 于 2023-1-12 23:33 编辑
现在有下面bat命令行控制VMware虚拟机关闭指定虚拟机的代码.
这里有个逻辑写不出,请大神帮忙.
情况是这样的.
1,首先运行:
d:
cd D:\VMware\
vmrun list
可以得到所有开机的虚拟机的列表名称.
得到结论(举例):
D:\vos\1\1.vmx
D:\vos\2\2.vmx
D:\vos\3\3.vmx
D:\vos\4\4.vmx
D:\vos\5\5.vmx
D:\vos\14\14.vmx
D:\vos\15\15.vmx
2, 逻辑: 如果不是整组的开机虚拟机,则关闭.
例如:
D:\vos\14\14.vmx
D:\vos\15\15.vmx
如果,不是整组虚拟机存在.,那么,
关机:
D:\vos\14\14.vmx
D:\vos\15\15.vmx
关机代码:
vmrun stop "D:\vos\14\14.vmx" hard
vmrun stop "D:\vos\15\15.vmx" hard
组概念:
D:\vos\1\1.vmx
D:\vos\2\2.vmx
D:\vos\3\3.vmx
D:\vos\4\4.vmx
D:\vos\5\5.vmx 为整组
D:\vos\6\6.vmx
D:\vos\7\7.vmx
D:\vos\8\8.vmx
D:\vos\9\9.vmx
D:\vos\10\10.vmx 为整组
其余类推,虚拟机最大编号120,按顺序,每5个编号连续的,为一组.
d:
cd D:\VMware\
vmrun list
关机代码:
vmrun stop "D:\vos\2\2.vmx" hard
vmrun stop "D:\vos\3\3.vmx" hard
当总共10个编号的虚拟机开机,才会运行这个代码,然后,如果中间有一个虚拟机需要关机,那么,后面的虚拟机开起来,就肯定也不是整组的,但是这组是不关机的(最大编号的5个不关机)
1,21,22,23,24,25,26,27,28,29
总共开启了10个,然后就运行这个代码,这个时候 1,不是整组,
26,27,28,29,也不是整,组, 但是这个不是整组,是应为1,不是整组,导致的,所以,最大序号的5个虚拟机不关机.
只,关闭,1,这个零散的虚拟机.这个逻辑才可以.
另外就是需要操作的虚拟机,限制编号必须为1-120的数字. 因为有2不是编号的虚拟机一直挂机的. |
|