好吧..
所以我正在编辑一个 AutoIt 脚本,其中包含许多未使用的功能。原作者认为从他/她的包含文件中添加所有功能是合适的。
起初我尝试使用 AutoIt/SciTe 中的工具来删除未使用的函数,但是由于某些奇怪的原因,这使得脚本/编译文件无用。所以现在我认为最好写一个函数移除器。
到目前为止,这是我所拥有的:搜索带有“Func _”的行计数该函数在文件中出现的次数。如果 1 次则选择字符串
$FileName=".\FILENAME.au3"
$File=Get-Content $FileName
$Funcs=$File|Select-String "Func _"
foreach ($Func in $Funcs) {
$FuncName=$Func.ToString().Split('( ')[1]
$Count=($File|Select-String $FuncName | Measure-Object).Count
if ($count -eq 1) {
$File|Select-String "Func _" $FuncName
}
}
我想做的是删除该函数,可能使用正则表达式。像这样:删除“Func _”$func *“EndFunc”
问题是这是一个跨越多行的搜索,从 Func _NAMEOFFUCTION 到 EndFunc。我不清楚 PowerShell 中的正则表达式是否可以做到这一点。并非所有正则表达式实现似乎都能够跨行搜索。正则表达式甚至是答案吗?我不知道。