簡體   English   中英

如何通過批處理腳本接收具有名稱的進程

[英]How to receive a processes that with name via a batch script

我需要接收名稱等於“MSSQLSERVER”或以“MSSQL$”開頭的進程的字符串。 名稱應以正斜杠 (/) 分隔。 我正在嘗試使用這樣的腳本來做到這一點:

@echo off
set mssqlDependenties=
set defaultSqlServerServiceName="MSSQLSERVER"
set namedSqlServerServiceNameBeginning="MSSQL$"

setlocal enabledelayedexpansion
for /f "tokens=2" %%s in ('sc query state^= all ^| find "SERVICE_NAME: MSSQL"') do (
    set serviceName=%%s
    if "%%s" equ %defaultSqlServerServiceName% (
        set mssqlDependenties=!mssqlDependenties!/%%s
    )   
    if "%serviceName:~0,7%" equ %namedSqlServerServiceNameBeginning% (
        set mssqlDependenties=!mssqlDependenties!/%%s
    )
)

echo %mssqlDependenties%

但我收到一個錯誤:

The syntax of the command is incorrect.

mssqlDependenties 應包含 MSSQLSERVER/MSSQL$1/MSSQL$2/MSSQL$3 等。

avery_larry 的解決方案非常有效:我改變了

 if "%serviceName:~0,7%" equ %namedSqlServerServiceNameBeginning% (

if "!serviceName:~0,7!" equ %namedSqlServerServiceNameBeginning% (

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM