“sc”命令的国际化

“sc”命令的国际化

我们有一个应用程序可以解析输出sc qdescription <service_name>以获取服务描述,通常的输出如下:

C:\>sc qdescription WSearch
[SC] QueryServiceConfig2 SUCCESS

SERVICE_NAME: WSearch
DESCRIPTION:  Provides content indexing, property caching, and search results for files, e-mail, and other content.

然而,我们刚刚发现,根据操作系统语言的不同,输出可能会有所不同,例如德语:

C:\>sc qdescription WSearch
[SC] QueryServiceConfig2 ERFOLG

SERVICE_NAME: WSearch
BESCHREIBUNG:  Stellt Inhaltsindizierung und Eigenschaftenzwischenspeicherung und Suchergebnisse für Dateien, E-Mails und andere Inhalte bereit.

我的问题是:

  • 应使用哪些标准来提取描述? 之后第二次出现的文本:
  • 那么其他语言呢,例如阿拉伯语或中文?

答案1

正如我在评论中提到的那样,其他方法

使用服务Wuauserv而不是Wsearch

输出格式为 csv 的查询wmic的缺点是值不是双引号,因此当描述也包含逗号时,解析会变得困难。

wmic service where Name='Wuauserv' get name,caption,description /format:csv

面向对象的 powershell 没有这个问题:

(Get-Wmiobject win32_service | Where Name -eq 'Wuauserv').Description

将其包装到批处理文件中:

@Echo off
for /F "usebackq delims=" %%A in (`
  powershell -NoP -C "(get-wmiobject win32_service|Where Name -eq 'Wuauserv').Description"
`) do set "Description=%%A"
set Description

示例输出(德语区域设置)

>set Description
Description=了解、下载和安装来自 Windows 更新以及其他程序。当服务关闭时,可以使用“Windows Update”。无法使用“自动更新”功能。另外,您还可以使用 Windows 更新代理程序界面 (WUA API) 来更新。

相关内容