よし..
そこで、未使用の関数がたくさん含まれている 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
}
}
私がやりたいのは、おそらく正規表現を使用して関数を削除することです。次のようなものです: REMOVE "Func _"$func * "EndFunc"
問題は、これが Func _NAMEOFFUCTION から EndFunc までの複数行にわたる検索であることです。PowerShellの正規表現でこれができるかどうかは私にはわかりません。すべての正規表現の実装が検索を複数の行にまたがることができるわけではないようです。正規表現は答えですか?知らない。