【发布时间】:2017-10-10 11:24:47
【问题描述】:
我想从我的文本文件中读取最后一个反斜杠之后的文本。目前我有:
$data=Get-Content "C:\temp\users.txt"
users.txt 文件包含来自用户主目录的路径
\\myserver.home.com\users\user1.test
如何在文本行末尾选择用户帐户 (user1.test) 名称,以便将其用作变量?
【问题讨论】:
标签: powershell
我想从我的文本文件中读取最后一个反斜杠之后的文本。目前我有:
$data=Get-Content "C:\temp\users.txt"
users.txt 文件包含来自用户主目录的路径
\\myserver.home.com\users\user1.test
如何在文本行末尾选择用户帐户 (user1.test) 名称,以便将其用作变量?
【问题讨论】:
标签: powershell
您可以使用简单的 regex 删除所有内容,直到最后一个斜杠(包括最后一个斜杠):
$user = $data -replace '.*\\'
【讨论】:
由于你是在处理文件路径,你可以使用GetFileName:
$data=Get-Content "C:\temp\users.txt"
$name=[System.IO.Path]::GetFileName($data)
【讨论】:
$HomeDirArray = Get-Content "C:\temp\users.txt" | Split-Path -Leaf 将为您提供一个可以使用 ForEach 迭代的数组(例如,ForEach ($User in $HomeDirArray) {...}。
【讨论】:
您可以使用Split和[-1]来获取最后一个反斜杠之后的字符串:
$data = Get-Content "C:\temp\users.txt"
$file = ($data -split '\\')[-1]
这使用两个反斜杠,因为反斜杠是正则表达式特殊字符(转义),因此第一个斜杠转义第二个。
【讨论】: