如何修改WMIC命令输出格式,实现打印机与端口的指定格式展示?
实现指定格式的打印机信息输出
可以在原WMIC命令基础上结合脚本或PowerShell命令实现需求,以下是两种可行方案:
方案1:纯CMD脚本
在CMD中执行以下脚本,可自动处理输出格式,将每个打印机以打印机名: 端口名的形式展示,并用逗号分隔:
@echo off setlocal enabledelayedexpansion set "output=" :: 跳过WMIC输出的表头行,逐行处理内容 for /f "skip=1 delims=" %%a in ('wmic printer get name^, portname') do ( set "line=%%a" :: 跳过空行 if not "!line!"=="" ( :: 拆分打印机名和端口名(适配带空格的打印机名称) for /f "tokens=1,*" %%b in ("!line!") do ( set "printer=%%b" set "port=%%c" :: 去除端口名前后的多余空格 set "port=!port: =!" :: 拼接结果字符串 if not defined output ( set "output=!printer!: !port!" ) else ( set "output=!output!, !printer!: !port!" ) ) ) ) echo !output! endlocal
方案2:结合PowerShell(更简洁)
利用PowerShell的处理能力,在CMD中执行以下命令即可快速得到目标格式:
powershell -Command "Get-WmiObject Win32_Printer | ForEach-Object {\"$($_.Name): $($_.PortName)\"} | Join-String -Separator ', '"
该命令会直接遍历所有打印机,拼接成指定格式后用逗号分隔输出。
内容的提问来源于stack exchange,提问作者Einsi
相关产品推荐
相关产品推荐

