今日はChatGPTに書いてもらったソースコードステップカウンターについて公開する。
とりあえず合計値が分かればいいや的発想。
拡張子とフォルダを指定し、下位フォルダも含め再帰的に処理する。
以下がそれである。
function Get-SourceCodeStepCount {
param(
[Parameter(Mandatory = $true)]
[ValidateScript({ Test-Path $_ -PathType 'Container' })]
[string]$Path
)
#拡張子選択
$sourceExtensions = @('*.pl', '*.pm', '*.cgi')
$totalSteps = 0
$sourceFiles = Get-ChildItem -Path $Path -Recurse -File -Include $sourceExtensions
foreach ($file in $sourceFiles) {
$lineCount = (Get-Content -Path $file.FullName -Encoding UTF8 | Measure-Object -Line).Lines
$totalSteps += $lineCount
}
Write-Output "Total Steps: $totalSteps"
}
# 実行ディレクトリ指定&実行
Get-SourceCodeStepCount -Path "C:\Users\hogehoge\"
$sourceExtensions = @(‘*.pl’, ‘*.pm’, ‘*.cgi’) に拡張子を指定する。
Get-SourceCodeStepCount -Path “C:\Users\hogehoge\” でフォルダパスも指定する。
後はキックバッチでこれを流せば完成。ね、簡単でしょ。
以下にキックバッチの一例も示す。
@echo off powershell -ExecutionPolicy RemoteSigned %~dp0\FileStepConut.ps1 PAUSE
FileStepConut.ps1は前述のPowerShellスクリプトを保存した名前。
PAUSEで画面が止まるので、ここで総ステップ数を確認できる。
後はbatをポチる1クリックで済むので便利なモジュールだと思う。
ちなみにUTF-8用なので他の文字コードだったら
-Encoding UTF8 の部分を変更願う。あと使用は自己責任で!