来自xml文件的多个值

时间:2015-09-30 15:43:52

标签: powershell

我有问题。 我需要找到具有完全扩展名的xml文件的所有文件。 例如,我有这个xml

<?xml version="1.0" encoding="UTF-8"?>
  <ls>
    <files>
      <file>
        <filename value="data.txt" />
      </file>
      <file>
        <filename value="data.csv" />
      </file>
      <file>
        <filename value="data.bkp" />
      </file>
      <file>
        ...
        ...

        ...
        ...
      </file>
    </files>
</session>

我第一次需要获取所有TXT文件,第二次获取所有DAT文件,第三次获取DAT,XLSX和TXT文件等。

我知道如何根据具体条件获取文件。

[xml]$files = Get-Content myxmlfile.xml
$files.session.files.file.filename | Where-Object {$_.value -like "*.txt" -or $_.value -like "*.dat" -or etc...}

如果条件在时间上仍然相同,这是完美的解决方案。 但如果它仍然在变化?我需要动态条件-or参数。

你知道我该怎么办? 像这样的东西

$mystring = "*.txt",*.dat"
$files.session.files.file.filename | Where-Object {$_.value -include $mystring}

1 个答案:

答案 0 :(得分:1)

您可以使用正则表达式和-match运算符。例如:

$pattern = '\.(dat|txt)$'
$files.session.files.file.filename | Where-Object { $_.value -match $pattern }