使用Powershell在变量中获取第一行字符串

Jus*_*Guy 5 powershell

这行代码:

$eventResult = Get-EventLog -Source ".net runtime" -LogName Application -Newest 1 | select -expandproperty message
Run Code Online (Sandbox Code Playgroud)

在$ eventResult中输出一个非常长的字符串.

我想做的就是抓住它的第一行.

这将输出$ eventResult的整个内容:

$eventResult | select-object -first 1
Run Code Online (Sandbox Code Playgroud)

但是,将数据输出到文件然后解析它就像一个魅力:

$eventResult | out-file c:\output.txt
cat c:\output.txt | select-object -first 1
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么?

更新:如果输出如下:

 Line1...
 Line2...
 Line3...
Run Code Online (Sandbox Code Playgroud)

然后我想要的只是"Line1 ......"

UPDATE2:

我编辑了$ eventResult(忘了| select消息).

Lar*_*ens 12

将换行符上的字符串拆分成一个数组然后取出第一个数组将会起作用,尽管它可能不是最有效的.

($eventResult.Message -split '\n')[0]
Run Code Online (Sandbox Code Playgroud)


小智 10

Select-Object正在返回 的全部内容,$eventResult因为 的全部内容$eventResult是第一个对象。

对于此查询返回的第一行,每一行都$eventResult需要成为它自己的对象,例如:

$eventResult.Split([Environment]::NewLine) | Select -First 1
Run Code Online (Sandbox Code Playgroud)

  • 使用 [Environment]::NewLine 是此代码跨平台工作的关键。 (2认同)