如何用PowerShell从文本文件中提取UNC路径到变量?
PowerShell提取文本中的UNC路径
实现步骤:
读取文件内容
使用Get-Content命令读取整个文件内容(-Raw参数确保文件作为单个字符串处理,避免换行分割导致匹配失败):$content = Get-Content -Path .\text.txt -Raw如果文件存在编码问题,可指定编码参数,例如:
$content = Get-Content -Path .\text.txt -Raw -Encoding UTF8定义UNC路径的正则匹配规则
UNC路径格式为\\服务器/域名\共享名\子路径\文件名,对应的正则表达式可精准匹配这类格式:$unc_pattern = '\\{2}[\w\.\-]+\\[\w\.\-\\]+'正则规则说明:
\\{2}:匹配路径开头的两个反斜杠[\w\.\-]+:匹配服务器/域名(支持字母、数字、点、横杠)\\:匹配共享名前的分隔反斜杠[\w\.\-\\]+:匹配共享名及后续的目录、文件名(允许反斜杠分隔多级路径)
提取UNC路径到目标变量
通过.NET的[regex]::Matches()方法找到所有匹配的UNC路径,提取后存入$unc_content:$unc_content = [regex]::Matches($content, $unc_pattern) | ForEach-Object { $_.Value }查看提取结果
直接输出变量即可显示所有提取到的完整UNC路径:$unc_content
示例效果
假设text.txt内容为:
这是一段杂项文本,其中包含UNC路径\domain.ad.corp\data\dir1\dir1a\dir1ab\filename.txt,还有另一个路径\fileserver01\shared\doc.pdf
运行上述代码后,$unc_content会输出:
\\domain.ad.corp\data\dir1\dir1a\dir1ab\filename.txt \\fileserver01\shared\doc.pdf
内容的提问来源于stack exchange,提问作者LightningJack
相关产品推荐
相关产品推荐

