【发布时间】:2011-03-20 11:58:41
【问题描述】:
我想写一个执行以下操作的批处理文件:
- 检查服务是否正在运行
- 如果它正在运行,退出批处理
- 如果没有运行,启动服务
到目前为止,我在 Google 上搜索的代码示例都无法正常工作,因此我决定不发布它们。
启动服务由:
net start "SERVICENAME"
- 如何检查服务是否正在运行,以及如何在批处理文件中创建 if 语句?
- 我有点困惑。我必须传递到网络开始的论点是什么?服务名称或其显示名称?
【问题讨论】:
-
脏编程:如果你只想启动服务,如果它没有运行,只需发出启动命令。如果它没有运行,它将启动服务。如果它正在运行,那么您会收到一条错误消息,但服务正在运行(并且不会停止)。脏,但它的工作原理。但是,如果您只想在必须启动服务的情况下执行其他 cmets,则一定要使用来自 lc 的更清洁的版本。
-
@Peter Schuetze:是的,如果启动服务是唯一目的,您的反对意见是正确的。我还包括 logging start 等等,所以我坚持使用 lc 的解决方案。
标签: windows windows-services batch-file scheduled-tasks