Test-Path -isValid在UNC根共享上失败

问题描述

无论实际存在与否,我都需要能够测试路径的有效性。我的函数用于验证用户提供的路径,该路径可能是本地驱动器,可能是UNC路径,也可能是注册表路径。然后,该路径可用作创建新文件夹,删除路径,副本的源或目标等的位置。 当路径是UNC共享的根目录时,Test-Path $path -isValid可以工作,但有一个例外。 因此,当$path = '\\Server\Folder'为真时,而$path = '\\Server'为假,即使\\Server是一条完全有效的路径。 我发现this建议使用([System.Uri]$path).IsUnc,但是当$path = '\\Px\Folder\|'实际上是完全无效的路径时返回true。 我可能可以扩展逻辑以测试路径是否实际上是共享根,然后以不同的方式处理事情,但是我想知道是否缺少一些内置解决方案,该解决方案实际上可以按我期望的Test-Path -isValid在所有情况下工作。在我正在测试的PS 5.1中仍然无法解决这个问题,这令人有些失望。还是我错过了什么,没有一个理性的人想要将\\Server测试为有效路径,因为没有人会把文件复制到这样的路径,或者在那里创建文件夹?当然,那是一种修辞式的讽刺和嘲讽,我有很多次需要精确地做这些事情,因此试图使这些事情自动化。

在一点切线处,是否存在接受的RegEx来验证UNC路径,该路径可以正确处理无效字符?如果我有一组RegEx表达式,那么我可以标识一个本地路径,UNC路径或注册表路径,然后验证每个是否包含禁止使用的字符,

编辑:我是个白痴。 $path = '\\Server'不是有效路径,您需要服务器和共享才能定义有效路径。那会教我在累的时候做RegEx东西。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)