【发布时间】:2016-05-04 07:50:20
【问题描述】:
我正在尝试验证路径,以便提供有意义的错误日志记录,但我遇到了通配符问题。 这将返回 False,除非其中有文件夹和内容,但它应该返回 True。
Test-Path -isValid -path:"C:\Somefolder\*"
这样不起作用,因为 -literalPath 不解释通配符。
Test-Path -isValid -literalPath:"C:\Somefolder\*"
我的感觉是我将不得不测试通配符,如果在父文件夹上找到Test-Path -isValid。但是后来我遇到了-like 的问题,因为我无法真正测试像 *.EXT 这样的条件。这让我认为唯一真正的答案是正则表达式,但这感觉像是非常基本的东西,我真的不需要求助于正则表达式,而且我可能遗漏了一些东西。
请注意,由于各种原因,我仅限于 PS v2。
编辑:为了澄清,实际路径是可变的。用户在 XML 文件中提供路径,然后我验证路径并对其进行处理。因此,可能是用户想要删除某个路径中的所有 TXT 文件。或所有文件。甚至所有文件和子文件夹。因此 C:\Somefolder\* 需要得到支持。如果他们有 C:\\Somefolder\* 或 C:Somefolder\* 我想将其标记为无效路径。但是当 Somefolder 不存在时 C:\Somefolder\* 不是无效路径,它是一个丢失的文件夹,我想将其标记为另一个错误。
【问题讨论】:
-
你要测试什么路径?
Test-Path "C:\Somefolder"够好吗?