Powershell-查找未定义的字符系列
我试图通过powershell查找一系列未定义的字符,并将它们替换为已定义的字符集。特别麻烦的一行脚本涉及修改Android项目的xml清单:Powershell-查找未定义的字符系列,powershell,Powershell,我试图通过powershell查找一系列未定义的字符,并将它们替换为已定义的字符集。特别麻烦的一行脚本涉及修改Android项目的xml清单: (get-content "AndroidManifest.xml") | foreach { $_ -replace "@drawable/*_icon", "@drawable/$icon_icon"} | set-content "AndroidManifest.xml" 这一行的思想是检索内容,搜索并替换图标字符串(用$icon
(get-content "AndroidManifest.xml") |
foreach { $_ -replace "@drawable/*_icon", "@drawable/$icon_icon"} |
set-content "AndroidManifest.xml"
这一行的思想是检索内容,搜索并替换图标字符串(用$icon表示的图标名称替换现有图标名称),然后将其传递回文件
不幸的是,当执行时,它看起来并没有真正完成它的工作,字符串也没有改变。现有字符串是可变的,因此不能输入任何值(因此使用通配符)
有人能为这个问题提出解决方案吗?在脚本中用$($icon)\u图标替换$icon\u图标。我认为您使用的正则表达式不太正确。
*
修饰符匹配上一个字符的零个或多个,因此/*\u图标
匹配零个或多个前斜杠,后跟\u图标
其次,在替换字符串中,匹配的内容将替换为$icon\u icon
变量的值。您需要将$icon
变量包装为表达式、$($icon)\u icon
或字符串格式、“@drawable/{0}\u icon”-f$icon
。我更喜欢字符串格式
把这些放在一起,你会得到:
$_ -replace "@drawable/(.*?)_icon", ("@drawable/{0}_icon" -f $icon)
不幸的是,这并没有解决问题。谢谢你的尝试!能否显示AndroidManifest.xml文件的相关摘录?清单中的相关行是
,其中X是原始图标名称。在这里,我试图选择带有@drawable的字符串,将X替换为$icon。我希望我能在这里更具体一些,但这不是我的XML,它属于我的雇主,我只是想简化构建过程。但是,$替换“@drawable/(.*?)\u图标”,“@drawable/$($icon)\u图标”也可以。