我有一个文本文件,我使用robocopy解决方法为长文件名创建。
每一行(作业页脚除外)包含以下内容 " New Line"大小日期时间FullName
接下来的两行来自文本文件。
New File 4.5 m 2013/05/08 13:25:00 e:\data\Data\aswMBR.exe
New File 287032 2009/06/26 07:07:42 e:\data\Data\AutodeskDesignRevSetup.exe
我如何"过滤"每一行的全名(以' e:\'开头)?
我尝试使用.split,但无法使用它来解决问题:\'作为分隔符。
答案 0 :(得分:0)
过滤包含New File
的行的文件,在标签处拆分它们,并保留每个拆分行的最后一个元素(索引-1):
Get-Content 'C:\path\to\robocopy.log' |
? { $_ -match '^\s*new file' } |
% { $_.Split("`t")[-1] }
答案 1 :(得分:0)
您可以使用regular expression来匹配全名。
如果您只想获得全名:
(Get-Content file.txt | Select-String 'e:\\.*').Matches.Value
如果您要删除全名:
Get-Content file.txt | ForEach-Object {$_ -replace '\se:\\.*'}