繁体   English   中英

Powershell从其完整路径中获取DLL名称

[英]Powershell to get a DLL name out of it's full path

我有一个字符串“ .... \\ xyz \\ abc \\ 0.0 \\ abc.def.ghi.jkl.dll”试图使用Powershell将“ abc.def.ghi.jkl.dll”的值转换为变量。

我对regex和PS完全陌生,对如何完成此操作感到困惑。 我阅读了有关正则表达式的各种文章,但无法正常工作

这是我的代码,

$str = "..\..\xyz\abc\0.0\abc.def.ghi.jkl.dll"

$regex = [regex] '(?is)(?<=\b\\b).*?(?=\b.dll\b)'
$result = $regex.Matches($str)
Write-Host $result

我想将“ abc.def.ghi.jkl.dll”放入$ result。 有人可以帮我吗

您可以使用以下正则表达式:

(?is)(?<=\\)[^\\]+\.dll\b

正则表达式演示

无需使用Matches ,只需使用-match (或Match )。

说明

  • (?<=\\\\) -确保在字符串的当前位置之前有一个\\
  • [^\\\\]+ -匹配\\以外的1个或更多字符
  • \\.dll\\b匹配一个. 符号,后跟3个字母dll ,后跟尾随单词边界。

电源外壳:

$str = "..\..\xyz\abc\0.0\abc.def.ghi.jkl.dll"
[regex]$regex = "(?is)(?<=\\)[^\\]+\.dll\b"
$match = $regex.match($str)  
$result = ""
if ($match.Success)  
{            
    $result = $match.Value
    Write-Host $result
}

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM