从文本文件中过滤文件名,同一行上的其他数据

时间:2015-07-06 20:13:19

标签: powershell

我有一个文本文件,我使用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,但无法使用它来解决问题:\'作为分隔符。

2 个答案:

答案 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:\\.*'}