【发布时间】:2016-10-29 16:13:51
【问题描述】:
我正在尝试这样输出对象:
通过Format-List 对包含对象的变量进行管道传输会产生空行,从而产生问题。使用$obj = $obj | ? {$_}时由于某种原因我无法删除空行
我希望包含对象的变量包含正确数量的对象。
当我首先运行$Host(具有我正在寻找的格式)然后运行变量$obj 时,足够有趣,然后我得到了我正在寻找的结果。
非常感谢任何帮助。
代码如下:
$String = @"
FileName: O:\iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
iiiiiiiiiiiiiii.txt
:`$DATA 9
SummaryInformation 128
{4c8cc155-6c1e-11d1-8e41-00c04fb9386d} 0
FileName: O:\ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
sssssssssssssss.txt
:`$DATA 9
SummaryInformation 128
{4c8cc155-6c1e-11d1-8e41-00c04fb9386d} 0
FileName:
O:\aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.txt
:`$DATA 0
Lzip 7
"@
[regex]$pattern1 = '(?s)\s+FileName:\s+(?<FullName>.*?)\s+:\$DATA'
$Match1 = $String | Select-String -Pattern $pattern1 -AllMatches |
% { $_.Matches }
[regex]$pattern2 = '(?sm)(?:(?<Stream>^:\$DATA.*?)\s+FileName|(?<Stream>^:.*))'
$Match2 = $String | Select-String -Pattern $pattern2 -AllMatches |
% { $_.Matches }
$obj = 0..($Match1.Count -1) | % {
New-Object -TypeName PsObject -Property @{
FullName = $Match1[$_].Groups['FullName'].Value
Streams = $Match2[$_].Groups['Stream'].Value
}
}
$obj
编辑:即使按照建议删除换行符,我也会得到以下输出:
全名
--------
O:\iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
O:\ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss...
O:\aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
【问题讨论】:
-
尝试使用 Trim 方法去除多余的空格。
-
谢谢,我想我处理的是对象,而不是字符串。你能举个例子吗?
-
请展示您想要的输出示例。显然这不是您在问题开头的屏幕截图中显示的内容。
-
我想要的输出在屏幕截图中。我要的是列表,而不是表格。当我使用像 它添加空行。我希望每个对象都具有属性 FullName 和 Streams,并且我希望变量包含具有正确计数 (3) 的对象列表并显示为列表。问题不在于创建对象时,因为我可以通过 看到该表包含 3 个计数。问题是对象的输出。我希望输出如屏幕截图所示:一个列表。
-
$obj | Format-List从您的屏幕截图生成输出。你在说什么?
标签: list powershell object format output