我有一个PowerShell脚本查询用户input一个Windows共享文件夹的名称。 我正在使用Windows'Net Share设置共享文件夹。 我想按照以下方式做一些事情:
$dest = "C:\Syncer" $sharename = Read-Host net share $sharename=$dest
但是,Windows不会将所有inputstring标识符识别为有效的共享名。 例如,给它inputAa.,
将不起作用。 我怎样才能找出用户的input作为一个有效的标识符?
@ TheMadTechnician提供了一个很好的解决方案,我只是提出了一个事实,即server Message Block(SMB),其中一个版本也被称为通用Internet文件系统(CIFS),支持通用命名约定 (UNC)名称。
这里是总结,你有兴趣在共享名称:
UNC = "\\" host-name "\" share-name [ "\" object-name ] host-name = "[" IPv6address ']" / IPv4address / reg-name; IPv6address, IPv4address, and reg-name as specified in [RFC3986] share-name = 1*80pchar pchar = %x20-21 / %x23-29 / %x2D-2E / %x30-39 / %x40-5A / %x5E-7B / %x7D-FF object-name = *path-name [ "\" file-name ] path-name = 1*255pchar file-name = 1*255fchar [ ":" stream-name [ ":" stream-type ] ] fchar = %x20-21 / %x23-29 / %x2B-2E / %x30-39 / %x3B / %x3D / %x40-5B / %x5D-7B / %x7D-FF stream-name = *schar schar = %x01-2E / %x30-39 / %x3B-5B /%x5D-FF stream-type = 1*schar
这是正则表达式的结果,我认为谷歌可以给你更多。