【发布时间】:2017-11-01 09:12:44
【问题描述】:
我已经进行了相当多的搜索以找到令人满意的答案,但找不到(无论是在 SO 上还是通过 Google)。
我目前正在使用以下命令从打印服务器上的所有打印机驱动程序中获取名称和产品版本,并将其通过管道传输到管道:
Get-WmiObject -Class Win32_PrinterDriver | select name, driverpath | %{ $Name = $_.name; $version = (get-item -LiteralPath $_.driverpath).VersionInfo.ProductVersion; write-output ($Name, $Version) }
从技术上讲,这可行,但管道输出很难看。输出如下所示:
远程桌面轻松打印,3,Windows x64
6.1.7601.17514
通用打印的 PCL6 驱动程序,3,Windows x64
3.4.100.1
MS Publisher 彩色打印机,3,Windows x64
6.1.7600.16385
我想要实现的是类似于以下内容(例如未通过 foreach 对象管道传输的对象的标准输出) - 例如。从以下命令:
Get-WmiObject -Class Win32_PrinterDriver | select name, driverpath
上述命令的输出如下所示:
name driverpath
---- ----------
Remote Desktop Easy Print,3,Windows x64 C:\Windows\system32\spool\DRIVERS\x64\3\mxdwdrv.dll
PCL6 Driver for Universal Print,3,Windows x64 C:\Windows\system32\spool\DRIVERS\x64\3\ricu00gr.dll
问题: 如何在 foreach-object 中准备输出以类似于上述格式/对象管道?
感谢您的任何意见。
致以诚挚的问候
【问题讨论】:
标签: powershell foreach