【发布时间】:2013-12-12 12:39:20
【问题描述】:
我目前正在开发一个 Windows 服务,它检查网络连接并在机器不在线时执行一些操作。
但是,对于新的 SSD 驱动器,Windows 服务的加载速度非常快,以至于它们在任何网络驱动器之前被初始化,这将始终导致脱机消息。
Microsoft 本身已经通过新的 Windows 服务类型“自动(延迟启动)”解决了这个问题,它只需等待 2 分钟并启动服务。这实际上是一个糟糕的解决方案,因为两分钟太长了。
我现在正在尝试在 Windows 批处理脚本(由服务执行)中实现 30 秒的等待时间。但是,出于某些充分的理由,我不想使用第三方软件。
在 Windows 7 中,您可以使用timeout,但一个要求是能够将该服务安装到还没有此命令的 XP 上。
另一种可能性是ping trick,这也是一个肮脏的解决方案。
是否有另一种好的解决方案可以在尝试连接网络驱动器后直接获得通知,或者至少可以在 XP 而不是第三方上使用更好的睡眠/等待可能性?
提前感谢您的回答!
【问题讨论】:
-
你为什么认为
ping很脏?它适用于所有 Windows 版本。cmdBatch 没有其他内置的wait命令,可能是 Powershell 或 VBS/wsh。为什么不使用循环并每隔 10 秒左右检查一次网络。 -
您正在使用批处理脚本;你已经脏了。使用 ping 不会让事情变得更糟!
标签: windows batch-file windows-services sleep wait