Добавить текст в начало каждой строки - PullRequest
0 голосов
/ 11 сентября 2018

Мне нужно изменить отчет об активности сервера, который я отправляю удаленным пользователям.Вместо того, чтобы искать номера лицензий своих клиентов, теперь я должен добавить эту информацию в отчет, отправляемый каждое утро.Я знаю, что POSH может сделать это, но у меня не было никакого формального обучения этому, и я только знаком с тем, что я должен был создать для определенных задач.

У меня есть CSV-файл с 2 заголовкамиЛиц и КЛИЕНТ.Файл журнала начинает каждую строку с 5-значного числа, соответствующего значению в столбце LIC.Мне нужно добавить значение для КЛИЕНТА в столбце, прежде чем это значение LIC.У кого-нибудь есть идеи о том, с чего начать создание функции, которая запрашивает файл 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

Ответы [ 2 ]

0 голосов
/ 12 сентября 2018

попробуйте это:

$Clients=import-csv "c:\temp\client.txt"

import-csv "c:\temp\log.txt" -Header FileName, Date1, Time1 | %{

$Client=$Clients | where Lic -eq ($_.FileName -split '_')[0] | select -first 1

   if ($Client -ne $null)
   {
      Add-Member -InputObject $_ -MemberType NoteProperty -Value $Client.CLIENT -Name Client
      $_ 
   }

} | export-csv "c:\temp\result.csv" -NoType
0 голосов
/ 11 сентября 2018

Пример сценария:

$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 имени файла вверху, чтобы они соответствовали вашим требованиям.

(Этот сценарий предполагает наличие только одного номера клиента на номер лицензии и совпадение в файле журнала.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...