Python 由于分析错误,powershell脚本无法从热模板运行

Python 由于分析错误,powershell脚本无法从热模板运行,python,regex,powershell,openstack-heat,Python,Regex,Powershell,Openstack Heat,我有一个用于搜索字符串的powershell脚本,当我直接从powershell命令提示符运行该脚本时,该脚本起作用,但当我将其放入热模板的userdata时,该脚本无法运行: 剧本是: $regex = [regex]"(?<=\>)(\d+)(.*)SNAPSHOT(?=\/\<)" $allsnapshot=$regex.Matches($testcode1) | % { $_.matches } | % { $_.value } |get-unique |sort -

我有一个用于搜索字符串的powershell脚本,当我直接从powershell命令提示符运行该脚本时,该脚本起作用,但当我将其放入热模板的userdata时,该脚本无法运行: 剧本是:

$regex = [regex]"(?<=\>)(\d+)(.*)SNAPSHOT(?=\/\<)"
$allsnapshot=$regex.Matches($testcode1) | % { $_.matches } | % { $_.value }  |get-unique |sort -descending

$regex=[regex]“(?)(\d+)(*)快照(?=\/\Python可能不允许您使用PowerShell v3对象强制转换,这是您隐式键入变量时所做的操作,例如[xml](Get Content.\SomeXml.xml)或在本例中,您的regex

我建议您尝试经过验证的PowerShell v1和up对象转换语法,如下所示:

$regex = New-Object -TypeName Regex -ArgumentList "(?<=\>)(\d+)(.*)SNAPSHOT(?=\/\<)" 

如图所示:.

相同的错误:在C:\Users\cloudbase init\appdata\local\temp\5362e2d8-5c06-4984-9dea-468027607 106.ps1:25 char:58+$regex=新对象-TypeName regex-ArgumentList”(?我认为这些字符在Python中一定非常特殊,但是如何绕过解析?啊,我明白了。那么,您的具体问题需要Python专家的帮助才能解决。我认为您的观点是正确的,因为Python试图理解powershell命令。请检查Python是否有“here string”的概念,如果有,请与我们合作我们可以用它来告诉python“伙计,说真的,不要尝试解析它,而是执行它”。我明天会检查,看看能找到什么。我删除了(?),然后它报告了(\b+)的错误;然后我用[0-9]+替换了\b+,错误移到了(.*):ObjectNotFound:(.*):String)[],commandnotfoundexception是否需要转义“\”,因为这是一个字符串,例如“\\d”而不是“\d”(以及使用“\”的其他位置)?
$regex = New-Object -TypeName Regex -ArgumentList "(?<=\>)(\d+)(.*)SNAPSHOT(?=\/\<)" 
"""This is a multiline string
 with more than one line
 in the source code."""