PDA

Показать полную графическую версию : [решено] Подставление нужных символов в переменной.


Luka666
21-10-2016, 09:26
Доброго дня камрады!
Подскажите пожалуйста скриптовому нубу, как подредактировать строки в переменной?
Например при создании переменной:

$userlist

командой:

$userlist = Get-ADuser -filter * -SearhBase "ou=Users? ou=CU, ou= <...>, dc=ru" |Select-Object SamAccountName

создаютсо в ней такие данные:


5826-34-54
5826-54-53
5826-43-94
5826-29-32
5826-86-55
2826-65-92...

Мне нужно, чтоб в переменной было так:


1;5826-34-54;Пванов;бухи;1
1;5826-54-53;Петров;бухи;1
1;5826-43-94;Запупкин;бухи;1
1;5826-29-32;Деревянка;бухи;1
1;5826-86-55;Сыза;бухи;1
1;2826-65-92;Верко;бухи;1


т.е. подставить с лева и права конкретные смволы и данные с других переменных, или от полученных параметров? Желательно чтоб при создании переменной так сразу и было, т.е. что нужно подставить к строке создания переменной?
Ну иле после редактировать переменную, предварительно извлекая из каждой строки данные для создания дополнительных переменных. Думаю первым вариантом можна обойтись, вот только как?
Прошу прощения если как-то тяжело объяснил. С благодарностью жду вопросы и предложения.

greg zakharov
21-10-2016, 09:36
Select'ом делаете нужные выборки, а далее преобразовываете в csv (в поздних версиях PS для этого есть ConvertTo-Csv)

Luka666
21-10-2016, 09:42
Select'ом делаете нужные выборки, а далее преобразовываете в csv (в поздних версиях PS для этого есть ConvertTo-Csv) »

А примеррчик можно? Мне же не одну строку, а все. И не нужен он мне в csv Нужен как текстовик. Но для начала мне нужно свормировать нужный текст в переменной. Хотел бы я ручками править, не псал бы это.

greg zakharov
21-10-2016, 10:01
Luka666, еще раз - с чувством и расстановкой. Дабы просить пример, приведите полностью то, чем нужно оперировать; выходной формат в Вашем случае проще формировать как CSV, а сохранить его Вы можете и с расширением TXT, - суть улавливаете? В общем, приведите пример входящих данных (без select'ов и прочего).

Elven
21-10-2016, 10:21
Import-Module ActiveDirectory
$userlist = (Get-ADUser -filter * -Properties * | foreach {
$a = "1;" + $_.SamAccountName + ";" + $_.Name + ";" + $_.Department + ";1"
$a
})
$userlist
так чтоле?

Luka666
21-10-2016, 10:34
Попробую.
В переменную записывается перечесление SamAccounName с конкретного ou.
Мне нужно после чтоб после SaмAccountName подставлялось сразу через ";" Name в каждой строке.
Также мне просто нужно подставить к ним с двух сторон тупо символы 1;

|Select-Object SamAccountName, name

Даёт немножко не тот результат.
По сути мне нада, узнать как вставить несколько простых, одинаковых символов, при необходимости даже из созданных специальна текстовых переменных, в определённые места списка и убрать лишние пробелы.

Luka666
21-10-2016, 11:34
Код: Выделить весь код
Import-Module ActiveDirectory
$userlist = (Get-ADUser -filter * -Properties * | foreach {
$a = "1;" + $_.SamAccountName + ";" + $_.Name + ";" + $_.Department + ";1"
$a
})
$userlist
так чтоле? »

Ога! практчески так как я и хотел! Благодарю от души. Теперь буду начинать вникать как и почему это так делаетсо. Чтоб лучше усвоить шта значат данные коды. Ещё раз спасибо.




© OSzone.net 2001-2012