Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 如何使用正则表达式测试文件的存在性_Powershell - Fatal编程技术网

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

如果需要更复杂的匹配,请参阅,其中显示了如何使用正则表达式。

如果知道名称测试路径正常,则必须遍历列表。如果知道名称测试路径正常,则必须遍历列表。