我们有一个应用程序可以解析输出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) 来更新。