Назад | Перейти на главную страницу

Используйте переменную for [$ i] для создания столбцов csv - Powershell

Я пытаюсь получить информацию из файла connectionstrings.config и заполнить ее в CSV. У меня пока есть следующий сценарий:

$Filename = "C:\new.config"
[xml]$config = Get-Content $fileName

$CSCount = $config.connectionStrings.add.connectionString.count

[array]$CS = $config.connectionStrings.add.connectionString
$CScount = $CS.count
$CSCount
for($i=0; $i -lt $CScount; $i++)
{
    New-Variable -Name "CS$i" -Value $CS[$i]
    New-Variable -Name "Password$i" -value ($CS[$i].Split(';') | 
    ConvertFrom-StringData).'Password'
}


$table=@"
foreach ($C in $CSCount) { connectionstring[$i] }
$Password[$i]
"@
#export to a csv file
$table | Set-Content $home\desktop\test.csv

Часть, в которой я застрял и не знаю, что делать, - это как использовать переменную for [$ i] для создания различных столбцов CSV с использованием данных, находящихся в переменной [$ i]. Итак, я проверяю, сколько строк подключения есть в моем файле, а затем использую этот массив # для генерации переменных. Затем я начал заполнять эту переменную в разных столбцах Powershell. Итак, массив [0] будет иметь пароль [0]. Я думал об использовании цикла foreach, но не повезло.

Пожалуйста, помогите или предложите. Ваша помощь очень ценится.

Нет необходимости создавать CSV вручную, PowerShell имеет ConvertTo-CSV и Export-Csv командлеты, чтобы сделать это за вас!

Если я понимаю ваш код, пример должен быть таким простым, как:

$Filename = "C:\new.config"
[xml]$config = Get-Content $fileName
$config.connectionStrings | Export-Csv -Path $home\desktop\test.csv