【问题标题】:Powershell Building Log TablePowershell 构建日志表
【发布时间】:2012-10-26 13:45:03
【问题描述】:

好的,所以这可能是一个奇怪的要求,但我是 powershell 的新手,但已经玩了几天,并且有一个想法,但不确定如何去做。我想制作一个如下所示的结果表。

Computer Name(s)   Attempt(s)   Result          Last Attempt
Computer1          1            Successful      9:31 25 Oct 12
Computer2          24           Unsuccessful    12:08 25 Oct 12
Computer3          9            Successful      11:22 25 Oct 12
Computer4          11           Unsuccessful    04:11 25 Oct 12
Computer5          12           Unsuccessful    07:19 25 Oct 12

我整理了一个命令,似乎可以得到我想要的结果,但需要一些调整才能获得我需要的附加功能。

( Get-Content .\~temp.txt ) | Foreach-Object {$_ -replace "$Computername,.*", ($Computername + "," + $Attempts + "," + $Result + "," + $Time.ToShortTimeString() + "," + $Time.ToShortDateString())} | Set-Content .\~temp.txt

首先要做的事。我需要从文本文件 (Computers.txt) 中加载所有计算机并将它们中的每一台加载到新文件中 (~temp.txt) 我正在考虑以下内容。

(注意:尚未测试,只是一个想法)

$Computers = Get-Content .\computers.txt
IF (Test-Path .\~temp.txt) {
      IF ( Select-String .\~temp.txt -pattern $Computer -quiet ) {} ELSE { Add-Content ./~test.txt "$Computer," }
} ELSE {
      ForEach ($Computer in $Computers) {
      add-content .\~temp.txt "$Computer,"
}

接下来是从该行中提取尝试次数和最后一个结果。老实说,我找不到如何做到这一点,希望有人能告诉我如何用一些解释他们如何做到这一点的 cmets 来做到这一点,或者对于我应该在谷歌上搜索的一些方向。感谢您花时间阅读本文,非常感谢您提供任何/所有帮助。

【问题讨论】:

    标签: powershell


    【解决方案1】:

    想通了 :) 给任何想知道的人

    $UpdateLog = Select-String .\~Temp.txt -pattern $ComputerName 
    $Attempts = $UpdateLog.ToString().Split(",")[1] 
    $Result = $UpdateLog.ToString().Split(",")[2]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多