AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 58430
Accepted
Doug Chase
Doug Chase
Asked: 2009-08-26 06:23:19 +0800 CST2009-08-26 06:23:19 +0800 CST 2009-08-26 06:23:19 +0800 CST

PowerShell 文本输出与控制台输出

  • 772

我正在构建一个脚本来监视我的事件日志。此命令仅收集“错误”和“警告”消息并将它们放入 $entries 数组。

$entries = $log.Entries |
? {$_.TimeWritten -gt ($(Get-Date).AddDays(-2)) -and `
(($_.EntryType -like "Error") -or `
($_.EntryType -like "Warning"))} |
Format-Table -wrap

如果我在控制台中输出 $entries,它会显示我想要的 - 日志条目 - 但如果我将其输出到文本文件(Add-Content $output $entries),我只会得到 .NET 类名(System.Diagnostics .EventLogEntry)。我也尝试过 foreach ($entry in $entries),结果相似。

我在这里缺少什么基本的 PowerShell 原则?

logging powershell
  • 3 3 个回答
  • 3348 Views

3 个回答

  • Voted
  1. Best Answer
    MattB
    2009-08-26T06:56:20+08:002009-08-26T06:56:20+08:00

    基本上 - add-content/set-content 命令只是对传递给它的任何内容执行 ToString() 。对于许多 .NET 对象,这只是类名。

    如果你这样做:
    out-string -inputobject $entries | 添加内容“yourfile.txt”

    这应该正确转换为字符串并将其输出到您的文本文件。

    • 1
  2. Helvick
    2009-08-26T07:02:55+08:002009-08-26T07:02:55+08:00

    添加内容会给你这种行为,如果你想要字段而不是对象描述,那么最简单的方法就是使用传统的文件重定向,例如

    $entries > $output
    

    或者

    $entries >> $output
    

    如果你想追加。这正如我所期望的那样适用于您的示例代码,而您的示例

    Add-Content $output $entries
    

    只为我输出对象类型描述(例如 Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData )。

    • 0
  3. Original Paulie D
    2012-07-27T12:57:46+08:002012-07-27T12:57:46+08:00

    管道通过: | 添加内容 $output

    当传输的内容包含许多行时,它似乎无法正常工作。

    例如:

    $output = "C:\temp\test.txt" 
    $TimeStamp = Get-Date; "STARTED: " + $TimeStamp | Out-File $output -width 800
    Get-ItemProperty -path "HKLM:\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\" | Add-Content $output
    

    在上面的示例中,test.txt 文件被正确创建,包括开头的注释。但是,Get-ItemProperty 输出显示为中文字符。

    • 0

相关问题

  • IIS 6 - 仅记录某些目录

  • 什么是好的日志查看器,例如 apache、postfix、syslog?

  • 如何提供可搜索的 IRC 日志?

  • 避免将某些丢失的文件记录到 Apache2 错误日志中

  • Tomcat 6 HTTP 日志滚动和清除

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve