Я пытаюсь добавить данные в CSV-файл по одной ячейке за раз, в зависимости от того, в каком столбце он должен быть. Мой текущий скрипт использует командлет Add-Content
, за которым следует -Value ",,$data"
, который вставляется вжелаемый столбец на основе количества запятых.Однако командлет Add-Content
вставляется в новую строку при каждом вызове, поэтому мои данные выглядят очень фрагментированными.
Единственное другое решение, которое мне удалось найти, - это создание временного объекта для экспорта в Csv(т. е. New-Object PSObject -Property @{col1 = $data}
), но это не позволяет мне вставить более одной строки после строки заголовка.
Мой текущий код:
ForEach ($user in $subSite.Users) {
if (($user -ne $null) -and ($user.Name -ne $null)) {
if ($user.Roles.Name -contains "Full Control") {
Add-Content -Path $outFile -Value ",$user"
}
elseif ($user.Roles.Name -contains "Site Owner") {
Add-Content -Path $outFile -Value ",,$user"
}
elseif ($user.Roles.Name -contains "Site Administrator") {
Add-Content -Path $outFile -Value ",,,$user"
}
}
}
Вся помощь приветствуется.Спасибо!
Редактировать: Вот пример того, что записывается в выходной файл.Не то чтобы это важно, но заголовок добавлен ранее в скрипт.
https://drive.google.com/file/d/1Sbye-ZU9PouOPwBOXdtke-xJooloaFRz/view?usp=sharing
Обратите внимание на фрагментацию, поскольку Add-Content
создает новую строку при каждом вызове.Я рассмотрел параметр -NoNewLine
, но он не будет работать, если мне нужно будет добавить новый фрагмент данных в тот же столбец.