如果我迭代文本文档,每一行都有这样的输出:
Newer 432416 2020/04/04 01:50:14 S:\Steam\SteamLibrary\steam.dll
我只想提取文件名和路径:
S:\Steam\SteamLibrary\steam.dll
我知道是否将该行存储在变量中
$textline = " Newer 432416 2020/04/04 01:50:14 S:\Steam\SteamLibrary\steam.dll"
我可以简单地使用
$textline.split (":")[-1]
,结果是:
\Steam\SteamLibrary\steam.dll
但是我如何让它包含驱动器号
S:
?有没有办法告诉它在前面抓取一个字符并包含分隔符?
谢谢你。
您可以使用下面的正则表达式匹配来搜索每行中的文件路径
([A-Za-z]:\\(?:[^\\]+\\)*[^\\]+)
$text_file = "path_to_your_text_file.txt"
$lines = Get-Content $text_file
$pattern = "([A-Za-z]:\\(?:[^\\]+\\)*[^\\]+)"
foreach ($textline in $lines) {
$match = [regex]::Match($textline, $pattern)
if ($match.Success) {
$file_path = $match.Groups[1].Value
Write-Host $file_path
}
}