Уважаемые знатоки подскажите есть файла сsv такого вида:
ExternalEmailAddress,FirstName,LastName,DisplayName,StreetAddress,City,StateorProvince,PostalCode,Phone,MobilePhone,Pager,HomePhone,Company,Title,OtherTelephone,Department,CountryOrRegion,Fax,Initials,Notes,Office,Manager
a.burav@test.ua,Анастасія,Бурав,Анастасія Бурав,,,,,,,,,test,менеджер з персоналу,,Офіс Департамент HR відділ рекрутингу,,,,,,,,,
ada.sorokina@test.ua,Ада,Сорокін,Ада Сорокін,,,,,,,,,test,керуючий магазином 3 категорії,,Київ Bublik-13 Київ (В-13)управління,,,,,,,,,
ads@test.ua,Advertisement,Manager,Advertisement Manager,,,,,,,,,test,,,,,,,,,,,,
По задаче взять СSV ФАЙЛ вытащить 2 столбика $Title и $Departmen если в данных таблицах для каждой строчки сверх 50 символов обрезать и записать .Поставив на место переменные
Если там к примеру $Title пустой а $Department нет, то так и записать пустой Title и проверить $Departme не превышает ли он 50 символов если нет также записать на свое место, если превышает обрезать до 50 символов и записать в файл
Если пустая ячейка оставить пустой делаю вот так:
# Указываем исходный файл
$impfile = "C:\Laba\kniga123.csv"
# Импортируем файл, указывая в качестве разделителя символ точку с запятой
$users =Import-Csv -Path $impfile -Delimiter ","
#Запускаем цикл и парсим каждую строчку
$(foreach ($user in $users)
{
#Считыаем данные из каждой ячейки матрицы в свою переменную
$ExternalEmailAddress = $user.ExternalEmailAddress;
$FirstName = $user.FirstName;
$LastName = $user.LastName;
$DisplayName = $user.DisplayName;
$StreetAddress = $user.StreetAddress;
$City = $user.City;
$StateorProvince = $user.StateorProvince;
$PostalCode = $user.PostalCode;
$Phone = $user.Phone;
$MobilePhone = $user.MobilePhone;
$Pager = $user.Pager;
$HomePhone = $user.HomePhone;
$Company = $user.Company;
$Title = $user.Title;
$OtherTelephone = $user.OtherTelephone;
$Department = $user.Department;
$CountryOrRegion = $user.CountryOrRegion;
$Fax = $user.Fax;
$Initials = $user.Initials;
$Notes = $user.Notes;
$Office = $user.Office;
$Manager = $user.Manager;
#Условия проверки если не пустая строка удаляем
If ($Title -ne $null)
{($Title.Remove(50))
Else {If ($Department -ne $null)
{($Department.Remove(50))}
}}
#Собираю обратно таблицу в изначальный вид но с изменеными данными
$a=$ExternalEmailAddress,$FirstName,$LastName,$DisplayName,$StreetAddress,$City,$StateorProvince,$PostalCode,$Phone,$MobilePhone,$Pager,$HomePhone,$Company,$Title,$OtherTelephone,$Department,$CountryOrRegion,$Fax,$Initials,$Notes,$Office,$Manager -join ','
#Для вывода результата перед записью в файл
Write-Output $a
})| Out-File -FilePath 'C:\Laba\knigatest777.csv' -Append -Width 300;
но результат таков что символы не удаляются в части срок и в файл пишется дичь
Буду рад за помощь.