如何删除路径Powershell中最后一个斜杠后的所有内容



我正试图删除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运算符要多得多的工作。

最新更新