スクリプトファイルの行数をカウントしよう
#背景
この[bat|SQL|sh]ってコメント除いたら何行あるの?
って聞かれたときにパッと分からなかったので。バッチにしました。
バッチ概要
シンプルな構文を繰り返しているだけです。こんな感じ。1ファイルを引数に取り、空白行と指定した文字から始まる行を除いて、行数をカウントします。
エラー処理は適当に書いています。
countLines.bat
if not "%2"=="" (
echo *** 2つ以上の引数が指定されています。
goto END_ERROR_ARG
)
if "%1"=="" (
echo *** 行数カウント対象のファイルを指定してください ***
goto END_ERROR_NOARG
)
set lines=0
if /i "%~x1"==".bat" (
for /f "eol=@" %%i in ( %1 ) do ( set /a lines=lines+1 )
goto END_SUCCESS
) else if /i "%~x1"==".cmd" (
for /f "eol=@" %%i in ( %1 ) do ( set /a lines=lines+1 )
goto END_SUCCESS
) else if /i "%~x1"==".sh" (
for /f "eol=#" %%i in ( %1 ) do ( set /a lines=lines+1 )
goto END_SUCCESS
) else if /i "%~x1"==".sql" (
for /f "eol=/" %%i in ( %1 ) do ( set /a lines=lines+1 )
for /f "eol=-" %%i in ( %1 ) do ( set /a lines=lines+1 )
goto END_SUCCESS
) else if /i "%~x1"==".ps1" (
for /f "eol=#" %%i in ( %1 ) do ( set /a lines=lines+1 )
goto END_SUCCESS
) else (
set errroMsg=対象外のファイル拡張子が指定された
goto END_OTHER_EXT
)
:END_SUCCESS
echo カウント結果[%~nx1]: %lines% Lines
exit /b 0
:END_ERROR_ARG
echo 実行結果:引数エラー
exit /b 1
:END_ERROR_NOARG
echo 実行結果:引数なし
exit /b 2
:END_OTHER_EXT
echo 実行結果:対象外のファイル拡張子
exit /b 3
コメント行に使われるであろう文字を決め打ちにしてるので、柔軟性はあんまりないです。バッチファイルだと、
@REMとか、REMとか、;とかコメント扱いにできちゃいますしね…
こんな感じで使います。
countLines.bat xxx.bat
探せば、もっと簡単に行数カウントしてくれるエディタとか、プラグインとかあるんでしょうか?
Author And Source
この問題について(スクリプトファイルの行数をカウントしよう), 我々は、より多くの情報をここで見つけました https://qiita.com/foxtail1979/items/4c8ba422bdcf75810095著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .