我有个问题。我需要找到具有确切扩展名的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}
您可以使用正则表达式和-match
运算符。例子:
$pattern = '\.(dat|txt)$'
$files.session.files.file.filename | Where-Object { $_.value -match $pattern }
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句