Powershell 如何使用正则表达式测试文件的存在性
我想测试我的磁盘上是否存在文件Powershell 如何使用正则表达式测试文件的存在性,powershell,Powershell,我想测试我的磁盘上是否存在文件C:\workspace\test\u YYYYMMDD.txt,其中YYYYMMDD表示年、月和日期 我如何在PowerShell中执行此操作 我知道testpath test.*.txt命令返回true 但是当文件名类似于test_20170120asdf.txt或test_2015cc1119aabb.txt时,test_*.txt也会返回true 我不希望像test_20170120asdf.txt这样的文件名在测试路径中被标记为true 我想在测试路径中应
C:\workspace\test\u YYYYMMDD.txt
,其中YYYYMMDD表示年、月和日期
我如何在PowerShell中执行此操作
我知道testpath test.*.txt
命令返回true
但是当文件名类似于test_20170120asdf.txt或test_2015cc1119aabb.txt时,test_*.txt
也会返回true
我不希望像test_20170120asdf.txt这样的文件名在测试路径中被标记为true
我想在测试路径
中应用正则表达式test\d{8}\.txt
。如何在PowerShell中执行此操作?类似于:
gci C:\workspace\test_*.txt | ? {$_.Name -match '^test_\d{8}\.txt$'}
比如:
gci C:\workspace\test_*.txt | ? {$_.Name -match '^test_\d{8}\.txt$'}
通配符表达式的匹配能力比正则表达式要有限得多-请参见-但在这种特殊情况下,它们就足够了:
Test-Path test_[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9].txt
如果需要更复杂的匹配,请参见,其中显示了如何使用正则表达式。通配符表达式的匹配能力比正则表达式要有限得多-请参见-但在这种特殊情况下,它们就足够了:
Test-Path test_[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9].txt
如果需要更复杂的匹配,请参阅,其中显示了如何使用正则表达式。如果知道名称测试路径正常,则必须遍历列表。如果知道名称测试路径正常,则必须遍历列表。