在一个文件中,我有很多像这样的行
Nom de l'objet : C:\ProgramData\Microsoft\Device Stage\Task\{07deb856-fc6e-4fb9-8add-d8f2cf8722c9}\netfol.ico
我只想扩展文件(这里是ico)。某些扩展名可能超过3个字符。有了awk,我可以做,但是在powershell ...感谢您的帮助。
有一些正则表达式:
$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个字符。
而不是使用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)
$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"