【问题标题】:Read text after last backslash在最后一个反斜杠后读取文本
【发布时间】:2017-10-10 11:24:47
【问题描述】:

我想从我的文本文件中读取最后一个反斜杠之后的文本。目前我有:

$data=Get-Content "C:\temp\users.txt"

users.txt 文件包含来自用户主目录的路径

\\myserver.home.com\users\user1.test

如何在文本行末尾选择用户帐户 (user1.test) 名称,以便将其用作变量?

【问题讨论】:

    标签: powershell


    【解决方案1】:

    您可以使用简单的 regex 删除所有内容,直到最后一个斜杠(包括最后一个斜杠):

    $user = $data -replace '.*\\'
    

    【讨论】:

    • 感谢 Martin,工作得很好,而且我现在有几种方法可以获得相同的结果。
    【解决方案2】:

    由于你是在处理文件路径,你可以使用GetFileName:

    $data=Get-Content "C:\temp\users.txt"
    $name=[System.IO.Path]::GetFileName($data)
    

    【讨论】:

      【解决方案3】:

      $HomeDirArray = Get-Content "C:\temp\users.txt" | Split-Path -Leaf 将为您提供一个可以使用 ForEach 迭代的数组(例如,ForEach ($User in $HomeDirArray) {...}

      【讨论】:

        【解决方案4】:

        您可以使用Split和[-1]来获取最后一个反斜杠之后的字符串:

        $data = Get-Content "C:\temp\users.txt"
        $file = ($data -split '\\')[-1]
        

        这使用两个反斜杠,因为反斜杠是正则表达式特殊字符(转义),因此第一个斜杠转义第二个。

        【讨论】:

        • 谢谢马克,干得漂亮
        猜你喜欢
        • 1970-01-01
        • 2022-06-23
        • 1970-01-01
        • 2021-12-30
        • 1970-01-01
        • 1970-01-01
        • 2020-06-03
        • 1970-01-01
        • 2015-06-18
        相关资源
        最近更新 更多