【问题标题】:How to receive a processes that with name via a batch script如何通过批处理脚本接收具有名称的进程
【发布时间】:2020-07-23 18:59:01
【问题描述】:

我需要接收名称等于“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 等。

【问题讨论】:

  • 引号需要围绕您要比较的两个内容。 %serviceName:~0,7%" equ %namedSqlServerServiceNameBeginning% 应该是 "%serviceName:~0,7%" equ "%namedSqlServerServiceNameBeginning%"
  • 您需要确认您是否希望%mssqlDependenties% 包含/MSSQLSERVER/MSSQLRANDOM1/MSSQLRANDOM2/MSSQLRANDOM3,或者可能包含/MSSQLSERVER/MSSQLRANDOM1/MSSQLRANDOM2/MSSQLRANDOM3,或/MSSQLRANDOM1/MSSQLRANDOM2/MSSQLRANDOM3/MSSQLSERVER。如果MSSQLSERVER 存在,这就是您想要的,还是无论找到哪个或多少,您都需要它们全部列出吗?您的问题还涉及流程,但这些是服务。你到底想达到什么目的?这些服务/流程应该是全部吗?只有那些正在运行的?等
  • 您在括号内的代码块中。任何设置或更改的变量都需要通过延迟扩展来引用。
  • @SomethingDark 除非帖子被编辑,否则变量 namedsqlserverservicenamebeginning 已经有双引号。 if 语句应该只缺少前导双引号。而且它还需要延迟扩展if "!serviceName:~0,7!" equ %namedSqlServerServiceNameBeginning%
  • with 'if "%serviceName:~0,7%" equ %namedSqlServerServiceNameBeginning% (' I receive "The syntax of the command is wrong." error. and with 'if "%serviceName:~ 0,7%" equ "%namedSqlServerServiceNameBeginning%" 我得到了“(此时是意外的。”错误。

标签: batch-file cmd sc


【解决方案1】:

来自 avery_larry 的解决方案完美运行: 我变了

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

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

【讨论】:

    猜你喜欢
    • 2013-07-11
    • 1970-01-01
    • 2017-02-04
    • 2014-12-17
    • 1970-01-01
    • 2010-09-14
    • 2021-09-27
    • 1970-01-01
    相关资源
    最近更新 更多