将文字附加到每一行的开头

时间:2018-09-11 19:15:01

标签: powershell

我需要修改发送给远程用户的服务器活动报告。我现在不必将其查找客户的许可证号,而是将这些信息附加到每天早晨发送的报告中。我知道POSH可以做到这一点,但是我没有接受过任何正式的培训,而且我只熟悉为特定任务创建的内容。

我有一个带2个标头LIC和CLIENT的csv文件。日志文件的每一行以5位数字开头,该数字与LIC列中的值相对应。我需要在LIC值之前在列中附加CLIENT的值。是否有人对从哪里开始构建查询csv文件并创建另一个日志文件供我的报表处理器发送的功能有任何想法?预先感谢您的宝贵时间!

csv如下:

LIC,CLIENT
12345,Client1
54321,Client2
34251,Client3

当前日志如下:

12345_file.txt,9/11/18,08:15:45
54321_file.txt,9/10/18,11:46:55

我希望日志显示如下:

Client1,12345_file.txt,9/11/18,08:15:45
Client2,54321_file.txt,9/10/18,11:46:55

1 个答案:

答案 0 :(得分:0)

示例脚本:

$licenseFile = "licenses.csv"
$logfile = "logfile.txt"
$newLogfile = "logfile2.txt"

$licenseRows = Import-Csv $licenseFile

Import-Csv $logFile -Header "Filename","Date","Time" | ForEach-Object {
  $row = $_
  @(
    ($licenseRows | Where-Object { $_.LIC -eq ($row.Filename -split "_")[0] }).CLIENT
    $row.Filename
    $row.Date
    $row.Time
  ) -join ","
} | Out-File $newLogfile

当然,请更改顶部的3个文件名以满足您的要求。

(此脚本假定每个许可证号仅一个客户号,并且日志文件中存在匹配项。)