Batch file 批处理文件-查找服务并停止它们
这是我的密码:Batch file 批处理文件-查找服务并停止它们,batch-file,service,Batch File,Service,这是我的密码: FOR /F "tokens=2" %%H IN ('sc query ^| find "SERVICE_NAME"') do ( SET service_name=%%H SET start_name=!service_name:~0,5! IF !start_name!.==redis. ( net stop !service_name! sc config !service_name! start= demand ) ) 这个很好用。它找到
FOR /F "tokens=2" %%H IN ('sc query ^| find "SERVICE_NAME"') do (
SET service_name=%%H
SET start_name=!service_name:~0,5!
IF !start_name!.==redis. (
net stop !service_name!
sc config !service_name! start= demand
)
)
这个很好用。它找到所有以“redis”开头的服务,停止它们,然后将它们的启动类型更改为手动
但是,如果我将sc-query
更改为sc-query-state=all
,它就不再工作了,我会收到一个错误,说服务不存在。。。但是,该命令在提示窗口中工作
我希望使用state=all
的原因是更改找到的服务的启动类型,即使这些服务当前未运行(如果未运行,它们不会显示在sc query
命令中)
我做错什么了吗?登录
状态=all
需要转义,因为它位于FOR
循环的内部
FOR /F "tokens=2" %%H IN ('sc query state^= all ^| find "SERVICE_NAME"') do (
SET service_name=%%H
SET start_name=!service_name:~0,5!
IF !start_name!.==redis. (
net stop !service_name!
sc config !service_name! start= demand
)
)
我知道有件很简单的事我不知道。谢谢:)