我正试图删除CanonicalName中最后一个斜杠之后的所有内容。正如你所期望的那样,字母、字符、单词和长度都是可变的。这就是为什么我需要使用这样一个事实,即在最后一个斜杠"/"是每个人唯一的共同点。
我正在使用以下内容:
(Get-ADUser Identity USER -Properties *).CanonicalName
正常输出类似于:
domain.tld/dept/section/office/USER
我希望结果是:
domain.tld/dept/section/office
最终,这将被合并到for循环中,并在数千名用户中运行,这就是为什么我需要找到一种方法来剥离末端。
您可以执行以下操作:
(Get-ADUser Identity USER -Properties CanonicalName).CanonicalName -replace '/[^/]*$'
/
与文字/
匹配。CCD_ 3是使CCD_ 4匹配除CCD_ 5之外的任何字符的否定字符类。*
是零个或多个匹配的量词(贪婪匹配(。$
是字符串的末尾。
路径转换也可以,但如果平台的目录分隔符字符不是/
,则/
将被转换为其他字符。然后你就可以把它们转换回来了。这只是比使用简单的-replace
运算符要多得多的工作。