我有问题。 我需要找到具有完全扩展名的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}
答案 0 :(得分:1)
您可以使用正则表达式和-match
运算符。例如:
$pattern = '\.(dat|txt)$'
$files.session.files.file.filename | Where-Object { $_.value -match $pattern }