【问题标题】:PowerShell Verbose-ParameterPowerShell 详细参数
【发布时间】:2020-08-14 23:45:42
【问题描述】:

我有几个关于详细参数的问题。 示例脚本:

try {
    New-Item -Path "C:\Test.txt" -ItemType "File" -ErrorAction Stop -Verbose
}
catch {
    Write-Host $Error[0]
}

输出:

VERBOSE: Execute the "Create file" operation for the target "Target: C:\Test.txt".
Access to the path "C: \ Test.txt" was denied.

如何将详细消息保存在变量中?

是否可以在将 PowerShell 自动生成的详细消息保存到日志文件之前对其进行编辑(添加日期和时间)? 示例脚本(不工作):

try {
    New-Item -Path "C:\Test.txt" -ItemType "File" -ErrorAction Stop -Verbose *> $LogFile
}
catch {
    Write-Host $Error[0]
}

有没有更好的建议来编写“成功”日志文件而不是使用参数 verbose 而不必手动编写?

谢谢!

【问题讨论】:

  • 最后一个问题有点不清楚 - 您能否发布一个您当前正在描述/正在做的事情的示例?
  • 我已添加到问题中。

标签: powershell logfile verbose


【解决方案1】:

如果将Verbose 流合并到标准输出流 (4>&1) 中,则可以将详细输出分配给变量:

$output = New-Item "C:\Test.txt" -ItemType "File" -ErrorAction Stop -Verbose 4>&1

由于New-Item 也返回新创建的文件,您需要再次将输出拆分为详细与普通:

$verboseOutput,$normalOutput = $output.Where({$_ -is [System.Management.Automation.VerboseRecord]}, 'Split')

现在您可以在将$verboseOutput 中的记录写入磁盘之前为其添加时间戳

【讨论】:

    猜你喜欢
    • 2020-08-18
    • 1970-01-01
    • 2018-04-03
    • 2016-12-02
    • 1970-01-01
    • 1970-01-01
    • 2014-08-02
    • 2014-06-02
    • 1970-01-01
    相关资源
    最近更新 更多