gpt4 book ai didi

shell - 如何等到 VirtualBox 完成加载以在 Windows Batch 中执行下一个命令?

转载 作者:行者123 更新时间:2023-12-04 14:46:22 25 4
gpt4 key购买 nike

我最近编写的 CMD 批处理文件遇到了一些问题。这应该在工作中启动我的开发环境,并且在大多数情况下它有效:

@echo off
start cmd.exe
start notepad++.exe
start sublime_text.exe
start outlook.exe
start communicator.exe
start "* Starting VirtualBox ..." virtualbox.exe
start sh.exe
start firefox.exe

我面临的挑战是我想启动 git-bash (sh.exe),但在企业配置中,virtualbox 必须启动并运行,vagrant 是一个基于 shell 的 virtualbox 管理器才能正确加载。因此,由于这种依赖性,在启动 git-bash shell (sh.exe) 之前,我需要 virtualbox.exe 启动并完全完成加载(我们不需要“启动”和框)。

我已经搜索过,但没有找到如何做到这一点。我不断得到结果推荐:
  • /等待
  • ping localhost (n) 次以创建计时器黑客

  • 这些选项的问题是/wait 在 VirtualBox 关闭之前不会移动到下一个命令——这不是我想要的。第二个选项是基于时间的等待,在这种情况下也不能解决我的问题。

    我究竟做错了什么?

    最佳答案

    哇!感谢 保罗 灵感。

    发现一个好机会!

    我正在使用命令浏览 build-it guest 操作系统属性:

     VBoxControl guestproperty enumerate -patterns *

    我发现了一个不错的属性“ /VirtualBox/GuestInfo/OS/LoggedInUsers

    在 guest 操作系统启动期间,此属性从“未设置值!”更改为通过值“0”到“1”(如果用户自动登录)。
    在 Windows 和 linux 上都可以正常工作。
    >VBoxManage guestproperty get "WIN7_32" "/VirtualBox/GuestInfo/OS/LoggedInUsers"
    No value set!

    >VBoxManage guestproperty get "WIN7_32" "/VirtualBox/GuestInfo/OS/LoggedInUsers"
    Value: 0

    >VBoxManage guestproperty get "WIN7_32" "/VirtualBox/GuestInfo/OS/LoggedInUsers"
    Value: 1

    因此,您无需在 guest 操作系统上向 Start-up 添加任何内容!甜的!

    你甚至可以使用 等待 :
    VBoxManage guestproperty wait "WIN7_32" "/VirtualBox/GuestInfo/OS/LoggedInUsers"

    但请记住,一旦 guest 操作系统到达欢迎屏幕,此命令将返回 0

    关于shell - 如何等到 VirtualBox 完成加载以在 Windows Batch 中执行下一个命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17301555/

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