如何使用条件和垃圾解析PowerShell中的文件

时间:2015-02-11 03:51:37

标签: parsing powershell

我需要获取此文件的一部分,例如,我需要提取以下内容

Main, Branches\Branch1

在一个变量中,我也没有重复值

有可能使用powershell吗?

这是文件:

This is a garbage line
This is another garbage line
c:\Folder\Main\Folder\..\Folder
c:\Folder\Main\Folder\..\Folder
c:\Folder\Branches\Branch1\Folder\..\Folder
c:\Folder\Branches\Branch1\Folder\..\Folder
c:\Folder\Branches\Branch1\Folder\..\Folder
c:\Folder\Main\Folder\..\Folder
c:\Folder\Main\Folder\..\Folder
this is the final line..

2 个答案:

答案 0 :(得分:2)

但当然......

根据$ files包含你的行

$files = Get-content "your file"

您可以使用以下内容确保没有重复:

$files | Sort-Object -Unique

然后您可以使用Test-path确保路径存在

$files | Sort-Object -Unique | where {Test-Path $_ -ErrorAction SilentlyContinue}

答案 1 :(得分:-1)

这将使用-like过滤器从示例数据中提取这些值以取出垃圾,并使用-replace来提取。 sort -unique将删除重复项,但不会保留提取的值与文件中的顺序相同。

(get-content testfile.txt) -like 'c:\Folder*' -replace 'c:\\Folder\\(.+?)\\Folder.+','$1' |
 sort -unique