代码之家  ›  专栏  ›  技术社区  ›  Alex Lum

POWERSHELL:像awk一样拆分字符串

  •  0
  • Alex Lum  · 技术社区  · 8 年前

    在一个文件中,我有很多这样的行

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

    我只想要文件的扩展名(这里是ico)。某些扩展名可能超过3个字符。 谢谢你的帮助。

    3 回复  |  直到 8 年前
        1
  •  2
  •   TobyU    8 年前

    $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个字符。

        2
  •  3
  •   Mike Shepard    8 年前

    $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)
    
        3
  •  1
  •   Bill_Stewart    8 年前
    $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"
    
    推荐文章