我有以下代码,在名为find.txt的文本文件中的所有主机名上启动名为uvnc_service的服务(见下文)。我想添加某种检查以测试服务是否已在其上运行,如果是 - 不执行任何操作并向屏幕输出消息,说明其已在运行或未在运行中的某个主机上运行.txt文件 - 启动服务,然后将主机名输出/附加到此文件。
有人能帮助我吗?
由于
... find.txt
pc1
pc2
pc3
...
set service = uvnc_service
for /F %%a in (c:\temp\find.txt) do sc \\%%a start %service% && >> out.txt echo %%a
答案 0 :(得分:1)
您可以使用服务控制来查询计算机并查看服务的状态,即它是否正在运行
试试这个
set service = uvnc_service
for /F %%a in (c:\find.txt) do call :servicecheck %%a
:servicecheck
sc \\%1 query %service% | FIND "RUNNING"
IF %ERRORLEVEL% == 0 GOTO STARTSERVICE %1
GOTO END
:STARTSERVICE
sc \\%1 start %service% && >> out.txt echo %1
:END
我无法在我的机器上测试它并且我暂时没有完成批处理所以它可能不完美