gpt4 book ai didi

linux - Vmrun超时命令

转载 作者:太空宇宙 更新时间:2023-11-04 04:14:11 25 4
gpt4 key购买 nike

我编写了一个脚本,使用 VMrun 运行 Vmware Windows guest 虚拟机,在该镜像内运行脚本并关闭 VMware session 。脚本如下:

vmrun start XP/XP/"Windows XP Pro SP3_original.vmx"  

~/Desktop$ vmrun -gu ** -gp ** runProgramInGuest XP/XP/"Windows XP Pro SP3_original.vmx" "C:\Documents and Settings\Computer\Desktop\script.bat"

vmrun stop XP/XP/"Windows XP Pro SP3_original.vmx"

但是,该脚本在镜像启动并运行之前会执行最后两个命令,因此导致该脚本无法在 Windows guest 中运行。有什么方法可以等到图像启动然后继续执行命令吗?

最佳答案

我将做出一些假设:

1.) 您的计算机将获得有效的 IP 地址,而不是 Windows APIPA 地址。

2.) 您正在运行 VMware Workstation(具有 readVariable 选项)

如果是这种情况,您可以 ping 机器并等待有效的 IP,然后按以下方式执行脚本:

#!/bin/bash

vmrun start XP/XP/"Windows XP Pro SP3_original.vmx"

win_ip=$(vmrun -T ws readVariable $YOUR_MACHINE guestVar ip)

# First loop waits for the address variable to populate
while [ -z $win_ip ]
do
win_ip=$(vmrun -T ws readVariable $YOUR_MACHINE guestVar ip)
done

# Second loop waits for a valid address
while [ ! -z $(printf $win_ip | grep "169.254") ]
do
win_ip=$(vmrun -T ws readVariable $YOUR_MACHINE guestVar ip)
done

~/Desktop$ vmrun -gu ** -gp ** runProgramInGuest XP/XP/"Windows XP Pro SP3_original.vmx" "C:\Documents and Settings\Computer\Desktop\script.bat"

vmrun stop XP/XP/"Windows XP Pro SP3_original.vmx"

这样做可以确保网络完全初始化,以防您的脚本依赖网络来实现任何功能。

关于linux - Vmrun超时命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17585575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com