ソースコードにときどき混じるCRを削る
自分用の覚書。Visual Studio 2010 Shell で fortran のLF改行のソースコードを編集していたら、ときどきCRがまざってしまい、環境によっては fortran コンパイラがエラーを吐くので、WindowsのドラッグアンドドロップでCRを削除するBATファイルとPHPスクリプトのセットを書いた。PHPスクリプト部分
<?php if ( $argc > 1 ) { $fname=$argv[1]; $handle= fopen("{$fname}.tmp",'r'); if ( $handle ) { $out=""; while ( !feof($handle) ) { $c= fgetc($handle); if ( $c != "\r" ) { $out.=$c; } } fclose($handle); file_put_contents($fname,$out); } }
BATファイル部分。BATファイルのアイコンにドラッグアンドドロップをすると、カレントディレクトリがドキュメントルート、引数 %1 にはフルパスのファイル名が入ってしまうので、ディレクトリ変更に%1を使い、ファイル名には %~nx1 を使う。
pushd %1\.. del %~nx1.tmp rename %~nx1 %~nx1.tmp php %~p0removeCR.php %~nx1