xml文件中的多个值

exo

我有个问题。我需要找到具有确切扩展名的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...}

如果条件仍然相同,则这是完美的解决方案。但是,如果它仍然在改变?我需要带有-或参数的动态条件。

你知道我该怎么做吗?像这样

$mystring = "*.txt",*.dat"
$files.session.files.file.filename | Where-Object {$_.value -include $mystring}
亚历山大·奥伯斯特(Alexander Obersht)

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章