iNNOKENTIY21
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Код: class Car { [string]$Marka [string]$Model [double]$Price Car([string]$Marka, [string]$Model, [double]$Price) { $this.Marka = $Marka $this.Model = $Model $this.Price = $Price } [string] ToString() { return "{0} {1} — `${2}" -f $this.Marka, $this.Model, $this.Price } } # Коллекция автомобилей [Car[]]$Cars = @( [Car]::new('ЗАЗ', '969', 900) [Car]::new('ВАЗ', '2106', 1900) [Car]::new('УАЗ', '469', 1400) ) # Путь для сохранения файла # (используется путь скрипта, скрипт должен быть сохранён в файл) $Path = Split-Path -Path $MyInvocation.InvocationName -Parent # Сбор полного имени файла $FullName = Join-Path -Path $Path -ChildPath 'Cars.csv' # Сохранить коллекцию в файл. $Cars | Export-Csv -Path $FullName -Encoding Unicode -Force # Вариант 1. Сохранить коллекцию в другой объект. [Car[]]$Cars2 = $Cars # Вариант 2. Импорт данных из файла #$Cars2 = Import-Csv -Path $FullName -Encoding Unicode # Добавление нового автомобиля в коллекцию $Cars += [Car]::new('АЗЛК', '2140', 1600) # Найти новый авто в коллекции, сравнивая с заранее сохраненной коллекцией if ($Cars2) { $NewCar = $Cars | Where-Object {$Cars2 -notcontains $_} $NewCar | ForEach-Object {$_.ToString()} } Remove-Variable -Name Path -Force Remove-Variable -Name FullName -Force Remove-Variable -Name Cars -Force Remove-Variable -Name Cars2 -Force | Желаемый вывод> АЗЛК 2140 — $1600 disclaimer: Скрипт использует сохранение в файл Cars.csv в папку где сохранён скрипт |