POWERSHELL: разбить строку как awk - PullRequest
0 голосов
/ 12 сентября 2018

В файле у меня много таких строк

Nom de l'objet :    C:\ProgramData\Microsoft\Device Stage\Task\{07deb856-fc6e-4fb9-8add-d8f2cf8722c9}\netfol.ico

Я просто хочу расширение файла (здесь ico). некоторое расширение может иметь более 3 символов. С помощью awk я могу сделать, но в powershell ... Спасибо за помощь.

Ответы [ 3 ]

0 голосов
/ 12 сентября 2018

Вместо использования RegEx, почему бы не использовать класс [System.IO.Path], чтобы получить расширение:

$str = "Nom de l'objet :    C:\ProgramData\Microsoft\Device Stage\Task\{07deb856-fc6e-4fb9-8add-d8f2cf8722c9}\netfol.ico"
$filename=($str -split ':',2)[1]
[System.IO.Path]::GetExtension($filename)
0 голосов
/ 12 сентября 2018
$str = "Nom de l'objet :    C:\ProgramData\Microsoft\Device Stage\Task\{07deb856-fc6e-4fb9-8add-d8f2cf8722c9}\netfol.ico"
if ( $str.LastIndexOf(".") -gt -1 ) {
    $str.Substring($str.LastIndexOf(".") + 1)
}
# Outputs "ico"
0 голосов
/ 12 сентября 2018

С некоторым регулярным выражением:

$str = "Nom de l'objet :    C:\ProgramData\Microsoft\Device Stage\Task\{07deb856-fc6e-4fb9-8add-d8f2cf8722c9}\netfol.ico"
$str -match "\.(.{3,})$"
$extension = $Matches[1]
$extension #ico

\.(.{3,})$ соответствует минимум 3 символам после последней точки до самого конца строки.

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