Добавление данных в CSV файл при помощи PowerShell

Для добавления новых данных в CSV файл необходимо в первую очередь убедиться, что тип данных совпадает с уже имеющимися, иначе в последствии получим дополнительные проблемы. Создаем список запущенных процессов:

$filepath = 
"$env:temp\processes.csv
"
Get-Process | 
  Select-Object Name, 
Company, Description 
-Unique | 
  Export-Csv $filepath 
-UseCulture -NoTypeInformation 
-Encoding UTF8

Предположим, что необходимо добавить новые процессы в этот список:

$filepath = 
"$env:temp\processes.csv
"
 
# получаем имена старых процессов
$oldproc = 
Import-CSV $filepath 
-UseCulture | 
Select-Object -expand 
Name
 
# новые процессы 
$newproc = 
Get-Process | 
  Where-Object { $oldproc 
-notcontains 
$_.Name } 
|
 original CSV file:
  Select-Object 
Name, 
Company, Description 
|
  ForEach-Object {
    Write-Warning "Found new process: 
$($_.Name)"
    $_
  } |
  # сохраняем новые процессы в CSV
delimiter:
  ConvertTo-CSV 
-UseCulture
 
# добавляем в старый файл
 
$newproc[2..$
($newproc.Count-
1)] | Out-File 
-Append $filepath 
-Encoding UTF8
# открываем файл
notepad $filepath
Теги:

Понравилась статья? Оставьте комментарий или подпишитесь на RSS рассылку.

Комментарии

форматирование просто ужасное!

Оставить комментарий

(required)

(required)