Перетащите текст PowerShell до и после строки - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть сценарий PowerShell, который автоматически генерирует подпись для всех сотрудников, извлекая данные из AD и используя шаблон docx с переменными в нем и заменяя переменные строками, которые мы извлекаем из AD.

Наша структура AD автоматически добавляет некоторые дополнительные данные в конец адреса (123 Main Street Этаж: 01 Room: 01), но у большинства сотрудников нет этажа или Room #, поэтому мы хотели бы удалить это из вывода, который отправляется на подпись.

На том же токене наша структура AD теперь добавляет +1 к началу всех телефонных номеров (т. Е. +1 (XXX) XXX-XXXX), и мы хотели бы удалить +1 из всех подписей.

какие-либо предложения о том, как извлечь строку из AD, удалить нежелательный контент, который находится до / после строки, и вывести его при необходимости в подпись?

Я пробовал различные способы использования split, -split и replace и не может получить строковые выходные данные, только выходные данные, похожие на "System.Object []"

Это то, что у нас есть по адресу:

$ADStreetAddress = $ADUser.streetaddress -Replace "Floor.*"

If ($ADStreetAddress -ne '') { 
       $FindText = "StreetAddress"
    $ReplaceText = $ADStreetAddress.ToString()
   }
   Else {
    $FindText = "StreetAddress"
    $ReplaceText = $DefaultAddress
    }

После приведенного выше сценария, если я наберу $ ADStreetaddress, он выдаст мне нужный вывод, но когда я пытаюсь запустить скрипт, заменяющий текст, он заменяет текст на System.Output [] вместо фактической строки, которую мы пытаюсь вывести. Заранее всем спасибо за помощь.

1 Ответ

0 голосов
/ 05 ноября 2018

Для удаления +1 я бы использовал trim()

$TheirPhone.trim("+1 ")

Чтобы сохранить все до пола. Попробуйте использовать:

$TheirAddress.substring(0,$TheirAddress.IndexOf('Floor'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...