Как вставить мягкий дефис - PullRequest
1 голос
/ 06 февраля 2012

Я бы хотел вставить мягкий дефис между буквами в слове с помощью powershell.например, вот какой-то текст:

Thisisatest => T-h-i-s-i-s-a-t-e-s-t

- - это мягкий дефис.Как я могу сделать это в powershell?

Ответы [ 4 ]

6 голосов
/ 07 февраля 2012

Вы можете использовать оператор PowerShell-friendly -join, чтобы сделать это:

"Thisisatest".ToCharArray() -join '-'

Обратитесь к справке по PowerShell Technet для получения дополнительной информации об операторе PowerShell -join.

http://technet.microsoft.com/en-us/library/dd315375.aspx

6 голосов
/ 06 февраля 2012

Используя методы .NET чуть больше, чем канонический код PowerShell, вы можете написать

$word = "Thisisatest"
[System.String]::Join("-", $word.ToCharArray())

и Powershell выводит "T-h-i-s-i-s-a-t-e-s-t"

РЕДАКТИРОВАТЬ: Для истинного мягкого дефиса и использования этого ответа на Unicode в PowerShell я бы изменил вторую строку на

[System.String]::Join([char] 0x00AD, $word.ToCharArray())
2 голосов
/ 06 февраля 2012

В PowerShell есть отличная статья о разбиении и объединении строк здесь .

Вы также можете обнаружить, что метод string.ToCharacterArray полезен, как уже упоминалось здесь .

0 голосов
/ 07 февраля 2012

Моя колонка Prof. PowerShell на тему разделения и объединения: http://mcpmag.com/articles/2011/10/18/split-and-join-operators.aspx

Лично я думаю, что вам следует избегать использования классов и методов .NET, если нет "родного" командлета или оператора PowerShell.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...