我正在创建一个批处理文件来启动多个服务,而不是用确切的服务名称枚举每个“net start”,我如何创建脚本来在任何以“EED”开头的服务上运行“net start”
谢谢。
答案1
如果您愿意使用 PowerShell 而不是批处理文件,那么这一行代码就可以解决您的问题。
Get-Service EED* | Start-Service
答案2
FOR-IN-DO 循环是实现此目的的一种方法。
FOR %%x in ("Service 1" "Service 2" "Service ...") DO net start %%x
语法可能有所不同,具体取决于服务名称和可选参数。当然,这不能满足您根据以“EED”开头的服务名称枚举列表的要求。您必须具体列出每项服务,或使用更复杂的代码来完成此操作。FOR /?
在命令提示符下键入以获取有关此命令提供的广泛选项的更多信息。
答案3
下面是一个可以完成这一任务的批处理文件:
@Echo Off
for /f "tokens=1,2" %%i in ('sc query') do if "%%i"=="SERVICE_NAME:" call :Process %%j
Goto :EOF
:Process
set @Name=%1
if "%@Name:~0,3%"=="EED" (SC start %1
Echo %1 Started)
:EOF
如果您想更改“前缀搜索”,请更改以下行:
if "%@Name:~0,3%"=="EED" (SC start %1
要搜索的前缀是“EED”,您必须确保更改长度数字,即“~0,3”部分...如果您想要所有以“Exchange”开头的服务,则将该数字更改为“~0,8”
高血压,
格伦