我正在尝试解析文件路径以获取文件名,并且我有一个正则表达式。*\
我将使用以下
Select-String -Pattern '.*\' -InputObject $test -NotMatch
在C:\Users\User\Desktop\test.exe这样的文件路径上,它返回空白。如果我删除-NotMatch标志,它将返回整个路径。我尝试使用正则表达式测试仪,这样我就知道正则表达式是正确的。我做错了什么?
不要使用Select-String
,而是使用Split-Path -leaf
。
看起来-notmatch只是在匹配的情况下忽略整行。这个怎么样?这是行末尾不是反斜杠的任意数量的字符。
'C:UsersUserDesktoptest.exe' | select-string [^\]*$ | % matches | % value
test.exe