从.xml文件中提取URL

时间:2018-07-31 07:22:34

标签: regex xml powershell patch

我的任务是编写一个PowerShell脚本,该脚本将进行MBSA扫描并下载并安装所有丢失的补丁程序。

我能够生成此类报告并将其另存为.xml文件。这是此报告的一小部分:

enter image description here

我想提取<DownloadURL></DownloadURL>之间的所有URL,但是我的代码不起作用:

Select-String -Path "C:\Users\AAA\Desktop\results1.xml" -Pattern '(?<=DownloadURL>).*?(?=<\Q/\EDownloadURL)' -AllMatches |
    % { $_.Matches } |
    % { $_.Value } > "C:\Users\AAA\Desktop\results1.txt"

我收到以下错误:

  

选择字符串:解析“(?<= DownloadURL>)。*?(?= <\ Q / \ EDownloadURL)”-无法识别的转义序列\ Q。

我尝试了(?=<\\Q/\\EDownloadURL)(?=<%5CQ/%5CEDownloadURL),但是在这个result1.txt之后,里面什么也没有。

您能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

我不确定power-shell命令,但正则表达式应如下所示: <DownloadURL>(.*)<\\DownloadURL>