PowerShell 从 Get-CimInstance 中删除 LineFeed 和 CarageReturn

问题描述 投票:0回答:1

我正在编写一个新脚本,从长远来看,为了让事情变得更容易,我需要将所有内容手动放入表单中以进行跟踪。现在我喜欢这个列表大部分都是干净的,但我想要以下内容。

我跑步:

$PrL = (Get-CimInstance -Class CIM_Printer).Name | Sort-Object

结果:

Printer01
Printer02
Printer03
Printer04

我试图实现的输出:

Printer01; Printer02; Printer03; Printer04

我设法要么放;在每一行的末尾或将每个条目一个接一个地写入。

当然我可以使用Notepad++并替换“ “ 和 ”; “但这需要更多时间。我希望能够自动化执行此操作,但到目前为止我只能得到一个又一个。

这里有一些尝试。

尝试1:

$PrL = (Get-CimInstance -Class CIM_Printer).Name | Sort-Object
$PrL2 = ForEach-Object { $PrL -replace '\r', ' '}

尝试2:

$PrL = (Get-CimInstance -Class CIM_Printer).Name | Sort-Object
$PrL2 = $PrL | ForEach { $_ +  "; " }
$PrL2 | ForEach { $_ -replace '\r', ' '}

尝试3:

$PrL = (Get-CimInstance -Class CIM_Printer).Name | Sort-Object
$PrL | ForEach-Object { $_ -replace '\n', " "}

我什至不知道是否 或 +r 或 `r 或其他完全必需的东西,我基本上尝试复制粘贴人们尝试过的一些东西,但这些只能部分工作或根本不起作用。

当前 PowerShell 版本:5.1.19041.3930 操作系统:Windows 10 专业版

powershell replace
1个回答
0
投票

使用模式

\r?\n
来代替 - 通过用
\r
标记
?
可选,它将匹配 CRLF 和 LF 样式的行结尾:

(Get-CimInstance -Class CIM_Printer).Name -replace '\r?\n',' '
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.