代码之家  ›  专栏  ›  技术社区  ›  Joey

如何使用PowerShell替换文件路径的最后一个未知部分

  •  0
  • Joey  · 技术社区  · 2 年前

    我有如下文件夹路径

    \街道\房屋\楼层\房间\ 321

    \城市\街道\房屋\楼层\房间\ 1023

    并希望使用PowerShell 5.1将最后的数字(此处为321或1023)替换为另一个数字(即567)。

    但是,路径可以像最后一个数字一样变化。

    如何进行更换?

    我假设使用RegEx,但我对此迷路了。。。

    1 回复  |  直到 2 年前
        1
  •  3
  •   Remko    2 年前

    在您的示例中,一个简单的替换就可以了,但假设字符串中的其他位置可能有数字,您可以使用一个正则表达式来捕获字符串末尾的一个或多个数字。

    \d 匹配数字(相当于[0-9])

    + 在一次和无限次之间匹配上一个标记

    $ 断言行末尾的位置

    [RegEx]::Replace('\Street\House\Level\Room\321', '\d+$', '1023')
    [RegEx]::Replace('\City\Street\House\Level\Room\1023', '\d+$', '567')
    

    输出:

    \Street\House\Level\Room\1023
    \City\Street\House\Level\Room\567