Powershell:如何删除阵列控制台输出中的第一个空空行?
我有一些代码,输出到控制台:Powershell:如何删除阵列控制台输出中的第一个空空行?,powershell,blank-line,Powershell,Blank Line,我有一些代码,输出到控制台: $exeoutput = @( " Compression : CCITT Group 4", " Width : 3180", " Height : 4908" ) $var = $exeoutput.trim() | Select-String "Height|Width|Compress" echo ---------------- $v
$exeoutput = @(
" Compression : CCITT Group 4",
" Width : 3180",
" Height : 4908"
)
$var = $exeoutput.trim() | Select-String "Height|Width|Compress"
echo ----------------
$var
echo ---------------
输出为
----------------
Compression : CCITT Group 4
Width : 3180
Height : 4908
----------------
如何从控制台输出中删除upper------之后的第一个空空行?$var变量的每个元素都是MatchInfo类型。您需要将它们强制转换为字符串,如下所示:
[string[]]$var
或
阅读:
ForEachtype转换类型
对于ForEach方法,您可以将类型传递到ForEach中
方法将集合中的每个项转换为另一项
类型例如,假设您有一组对象,并且
要将这些对象转换为其等效字符串。这是
ForEach方法会是什么样子:
您可以通过键入集合来执行相同的任务
转换为字符串类型的数组,例如[string[]]$processs,以及
实际上,数组的类型转换速度要快得多,但是
一个很好的机会,你甚至不会注意到在
执行时间,除非你和一个非常非常大的
收集尽管时差很大,我还是倾向于选择
在某些情况下,如果允许我
通过避免额外的循环,在实现中保持优雅
我写的脚本中的括号
更新了与以下内容相关的示例代码段:
结果:
---------------
Compression : CCITT Group 4
Width : 3180
Height : 4908
---------------
请注意,echo是以下各项的别名:
此cmdlet通常在脚本中用于显示字符串和其他内容
控制台上的对象。但是,因为默认行为是
在管道末端显示对象,通常不显示
必须使用cmdlet
请注意,请参见˙'-'*15,而不是---------.是否最好使用实际的cmdlet替换这些echo项?惊人数量的人不知道echo是一个别名。。。而且它不是写主机的别名。//此外,OP似乎需要几行破折号,因此这看起来是演示字符串乘法的好地方。[咧嘴笑]
# Get a collection of processes
$processes = Get-Process
# Convert the objects in that collection into their string equivalent
$processes.foreach([string])
$var = $exeoutput.trim() | Select-String "Height|Width|Compress"
'-' * 15
$var.foreach([string])
'-' * 15
---------------
Compression : CCITT Group 4
Width : 3180
Height : 4908
---------------