Convert-String
Форматирует строку для сопоставления примеров.
Синтаксис
Convert-String
[-Example <System.Collections.Generic.List`1[System.Management.Automation.PSObject]>]
-InputObject <String>
[<CommonParameters>]
Описание
Командлет форматирует строку, соответствующую формату примеров.
Примеры
Пример 1. Преобразование формата строки
"Mu Han", "Jim Hance", "David Ahs", "Kim Akers" | Convert-String -Example "Ed Wilson=Wilson, E."
Han, M.
Hance, J.
Ahs, D.
Akers, K.
Первая команда создает массив, содержащий имена и фамилии.
Вторая команда форматирует имена в соответствии с примером. Он ставит фамилию в первую очередь в выходных данных, а затем инициал.
Пример 2. Упрощение формата строки
$composers = @("Johann Sebastian Bach", "Wolfgang Amadeus Mozart", "Frederic Francois Chopin", "Johannes Brahms")
$composers | Convert-String -Example "first middle last=last, first"
Bach, Johann
Mozart, Wolfgang
Chopin, Frederic
Brahms, Johannes
Первая команда создает массив, содержащий первые, средние и фамилии. Обратите внимание, что последняя запись не имеет промежуточного имени.
Вторая команда форматирует имена в соответствии с примером. Он помещает фамилию в выходные данные, за которым следует первое имя. Все промежуточные имена удалены; запись без промежуточного имени обрабатывается правильно.
Пример 3. Управление выходными данными, когда строки не соответствуют примеру
$composers = @("Johann Sebastian Bach", "Wolfgang Amadeus Mozart", "Frederic Francois Chopin", "Johannes Brahms")
$composers | Convert-String -Example "first middle last=middle, first"
Sebastian, Johann
Amadeus, Wolfgang
Francois, Frederic
Первая команда создает массив, содержащий первые, средние и фамилии. Обратите внимание, что последняя запись не имеет промежуточного имени.
Вторая команда форматирует имена в соответствии с примером. Он помещает промежуточное имя в выходные данные, за которым следует первое имя. Последняя запись в $Composers
пропускается, так как она не соответствует образцу шаблона: у него нет промежуточного имени.
Пример 4. Осторожность с пространствами красоты
$composers = @("Antonio Vivaldi", "Richard Wagner ", "Franz Schubert", "Johannes Brahms ")
$composers | Convert-String -Example "Patti Fuller = Fuller, P."
Wagner, R.
Brahms, J.
Первая команда создает массив имен и фамилий. Обратите внимание, что второй и четвертый элементы имеют дополнительное место в конце после фамилии.
Вторая команда преобразует все строки, соответствующие образцу шаблона: слово, пробел, слово и последнее конечное пробел, все это до знака равенства (=
). Кроме того, обратите внимание на ведущее пространство в выходных данных.
Пример 5. Форматирование сведений о процессе с несколькими шаблонами
$ExamplePatterns = @(
@{before='"Hello","World"'; after='World: Hello'},
@{before='"Hello","1"'; after='1: Hello'},
@{before='"Hello-World","22"'; after='22: Hello-World'},
@{before='"hello world","333"'; after='333: hello world'}
)
$Processes = Get-Process | Select-Object -Property ProcessName, Id | ConvertTo-Csv -NoTypeInformation
$Processes | Convert-String -Example $ExamplePatterns
Id: ProcessName
4368: AGSService
8896: Amazon Music Helper
4420: AppleMobileDeviceService
...
11140: git-bash
0: Idle
...
56: Secure System
...
13028: WmiPrvSE
2724: WUDFHost
2980: WUDFHost
3348: WUDFHost
$ExamplePatterns определяет различные ожидаемые шаблоны в данных с помощью примеров.
Первый шаблон, @{before='"Hello","World"'; after='World: Hello'}
, считывается следующим образом:
- ожидать строк, в которых слово заключено в двойные кавычки, а затем запятая,
- , а затем второй и последний слова, заключенные в кавычки;
- без пробелов в строке. В выходных данных: сначала поместите второе слово,
- без кавычки, а затем одно пространство, а затем первое слово без кавычки.
Второй шаблон, @{before='"Hello","1"'; after='1: Hello'}
, считывается следующим образом:
- ожидать строк, в которых слово заключено в двойные кавычки, а затем запятая,
- , а затем число заключено в кавычки;
- без пробелов в строке. В выходных данных: сначала поместите число,
- без кавычки, а затем одно пространство, а затем слово без кавычки.
Третий шаблон, @{before='"Hello-World","22"'; after='22: Hello-World'}
, считывается следующим образом:
- ожидать строк, в которых два слова с дефисом между ними заключены в
- двойные кавычки, затем запятую, а затем число заключено в кавычки;
- без пробелов между запятой и третьей двойной кавычки.
- В выходных данных: сначала поместите число без кавычки, а затем одно пробел,
- , а затем дефисированные слова без кавычки.
Четвертый и последний шаблон, @{before='"hello world","333"'; after='333: hello world'}
, считывается следующим образом:
- ожидать строк, в которых два слова с пробелом между ними заключены в
- двойные кавычки, затем запятую, а затем число заключено в кавычки;
- без пробелов между запятой и третьей двойной кавычки.
- В выходных данных: сначала поместите число без кавычки, а затем одно пробел,
- , а затем слова с пробелом между, без кавычки.
Первая команда получает все процессы с помощью командлета Get-Process. Команда передает их командлету Select-Object, который выбирает имя процесса и идентификатор процесса. В конце конвейера команда преобразует выходные данные в разделенные запятыми значения без сведений о типе с помощью командлета ConvertTo-Csv. Команда сохраняет результаты в переменной $Processes. $Processes теперь содержит имена процессов и piD.
Вторая команда указывает пример переменной, которая изменяет порядок входных элементов. Команда охватывает каждую строку в $Processes
.
Заметка
Четвертый шаблон неявно говорит, что два или более слов, разделенных пробелами, совпадают. Без четвертого шаблона сопоставляется только первое слово строки, заключенной в двойные кавычки.
Параметры
-Example
Задает список примеров целевого формата. Укажите пары, разделенные знаком равенства (=
), с исходным шаблоном слева и целевым шаблоном справа, как показано в следующих примерах:
-Example "Hello World=World, Hello"
-Example "Hello World=World: Hello",'"Hello","1"=1: Hello'
Заметка
Второй пример использует список шаблонов
Кроме того, укажите список хэш-таблиц, содержащих до и свойств After.
-Example @{before='"Hello","World"'; after='World: Hello'}, @{before='"Hello","1"'; after='1: Hello'}
Осторожность
Избегайте использования пробелов вокруг знака равенства (=
), так как они рассматриваются как часть шаблона.
Тип: | List<T>[PSObject] |
Aliases: | E |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-InputObject
Задает строку для форматирования.
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
Входные данные
String
Строки можно передать в этот командлет.
Выходные данные
String
Этот командлет возвращает строку.