powershell - 测试路径 -isValid 在 UNC 根共享上失败
问题描述
无论实际存在如何,我都需要能够测试路径的有效性。我的函数用于验证用户提供的路径,该路径可能是本地驱动器,可能是 UNC 路径,也可能是注册表路径。然后,该路径可以用作创建新文件夹、删除路径、作为副本的源或目标等的位置
Test-Path $path -isValid
,但有一个例外,当路径是 UNC 共享的根目录时。所以当$path = '\\Server\Folder'
我得到真实的时候,但当$path = '\\Server'
我得到错误的时候,即使\\Server
是一条完全有效的路径。我发现这建议使用([System.Uri]$path).IsUnc
但返回 true 时$path = '\\Px\Folder\|'
这实际上是一条完全无效的路径。我可能可以扩展我的逻辑来测试路径是否实际上是共享根,然后以不同的方式处理事情,但我想知道我是否遗漏了一些内置的解决方案,这些解决方案实际上可以像我预期Test-Path -isValid
的那样适用于所有情况。在我正在测试的 PS 5.1 中这仍然被破坏的事实有点令人失望。或者我是否遗漏了一些东西并且没有理性的人想要测试\\Server
为有效路径,因为没有人会将文件复制到这样的路径,或者在那里创建一个文件夹?这当然是一个修辞方程式和讽刺,我有很多次需要这样做,因此尝试将这些事情自动化。
稍微切线,是否有一个公认的 RegEx 用于验证 UNC 路径,可以适当地处理无效字符?如果我有一组 RegEx 表达式,以便我可以识别本地路径、UNC 路径或注册表路径,然后验证每个不允许的字符,那可以工作。
编辑:我是个白痴。$path = '\\Server'
不是有效路径,您需要服务器和共享来定义有效路径。那会教我在累的时候做 RegEx 的东西。
解决方案
推荐阅读
- swiftui - 为什么我不能改变 CAEmitterCell 的颜色
- javascript - 将成员的数据库 ID 分配给 Javascript 变量
- swiftui - SwiftUI Text iOS15:文本视图内的电子邮件或 URL 使用强调色呈现
- css - mat-menu-item 与 mat-menu 按钮大小相同?(角度材料 v.12)
- core-graphics - 如何使用 Core Graphics 无延迟地显示数千张图纸
- google-cloud-dataproc - 云作曲家任务无法创建 dataproc 集群
- c - Cmake 将不存在的库添加到 linklibs.rsp
- r - R Shiny:uiOutput 中的条件 actionButton
- c++ - C++ 在结构定义中继承共享指针是什么意思?
- python - 根据其他列(滞后)值创建第四列