プロジェクトコンバータ                  vega     2004.03.21

  以前から開発環境で作成したプロジェクト名を簡単に変更出来たらと思っていました。
  VBなどは手でやっても大したことないですが、VC++などやる気にもなりません。
  新規に作成する場合など、たまにしかツールを触らない場合は、プロジェクトの作成方法
  すら忘れている場合もあります。(私の場合)
  面倒だからコピーしていると同じ名前のプロジェクトが沢山できて、中身が訳わかんない.....(私の場合)

  というわけで作成しました。 perlにはこうゆう事は得意そうです。

  使用例)
      プロジェクト名の 
prj003 を prj453 に変更する場合
    下記のバッチファイルを実行します。

      perl pjconv.pl dir=d:\test\vcpp  old=prj003  new=prj453

   これで、ファイル名の変更、フォルダ名の変更も行います。
   もちろん論理的矛盾など、チェックしていないので新しいプロジェクトが正しく
   変換できない場合もあります。(プロジェクト名以外で使用している場合など)

   変更後は、まずオープンして、makeやビルドを行ってください。
   出来たからと言って、変換が成功しているとは限りませんが、最低条件です。

   正しく変換できても、新しいキーワードが内部で別の意味で使われていれば、2度と変換できません。
   確認するには、変更行予定の名前を検索し(テストモード opt=NYN又はopt=NYY )でヒットしなければOKです。

   スクリプトが行っていることは、全てのファイルを読みこみ、文字列を検索して置き換えを行っています。
   ですからテキストファイルでプロジェクト名を管理しているものなら何でも使用できるはずです。

   確認したもの
   MSのVB、MSのVC++、H8/HEW    

   確認してませんが。
   gccでのファイル名とmakefileの変更、picのMPLAB、AVRのavr studio、
   などでも使用できるかもしれません。

   makeやビルドで生成されるものは事前に削除した方がトラブルが少ないです。
   読みこみ専用になっている場合は、変更しませんから。    
              
   又読み込み専用のファイルは更新きませんので、一括して属性変更して書き込み可能にした方が
   トラブルが少ないです。 エクスプローラのプロパティで一括変更できます。


 スクリプトとバッチファイル    pjconv.lzh     Ver0.31  2003.3.21
                    pjconv32.lzh   Ver0.32   2003.3.25



 
使用方法

  perl pjconv.pl dir=xxxxx  old=xxxxx  new=xxxxxx opt=YYN list=xxxx.xxx

No パラメータ     内        容
@ pjconv.pl このツールのスクリプト名です。
        
A dir=  処理対象のフォルダ名
   指定フォルダ以下は、全て処理対象になります。
   フォルダのネストは無制限です。注意して下さい。

 指定例)

  @ 絶対パス指定

    dir=f:\test\abc\VCPP
  
  A perlスクリプトの隣のフォルダ
   
    dir=../VCPP

  B perlスクリプトの下のフォルダ
      
    dir=VCPP
B old= 検索する文字列   日本語使用可能
     
C new=   

おきかえる文字列。省略すると検索したものが消滅します。
日本語使用可能

ファイル名及びフォルダ名の一部でも検索文字列が一致すれば置き換えます。

     
D opt=  処理オプションです。省略時は opt=YYN を指定したものと同じです。
                      
 1番目:Nにすると検索のみで変更しません。
     ファイル、フォルダの名前の変更も行いません。
     要するに変更は全くせず、リハーサルみたいなものです。
 2番目:Nにするとファイル、フォルダの変更を行いません
 3番目:Yにすると大文字小文字を区別しません。
                   
E dc= 区切り記号の変更 省略時は dc=N
 指定ない場合は、区切り文字に / を使用しています。
 検索と変換の文字に/が含まれている場合は dc=Y とすると ' を使用します。
 正規表現で検索と置換を行っています。
 区切り文字と検索(置換)文字は混同できないのでスクリプトを変更する必要
 があるかもしれません。各所にあります。
  sprintf("buf=~s/%s/%s/gi",$old,$new);    ## 置換 区切りは /
  sprintf("buf=~'%s'" ,$old);        ## 検索 区切りは '


  置換はできても検索は # ! | = などが使えません。(なぜか?)
F list= 処理結果リストのファイル名。  省略した場合は list.txt に作成される。
バッチファイルで連続実行する場合、個別に名前を付ければ結果ファイルが残ります。
    処理結果リスト

 内容変更の有無、ファイル名変更の有無、フォルダ名変更の有無
 読みこみ専用になっている場合の表示など。

 ・現ファイル名の横のYは内容変更がある場合です。      
  ファイル名、フォルダ名が変更した場合は、右に表示します。  
サンプル
 ・ファイル名変更ない場合(opt=YNN)                  
サンプル
 ・現ファイル名の横のRは、読み込み専用を表します。Yが付いていても 
  内容は変わっていません。                      
サンプル

 ・opt=NYN とした場合は、Tマークが出ますが、変更予定です。
  ファイル数のサマリは、カウントされていますが、変更した場合の数で
  実際には変更していません。                    
サンプル
     
    注意
  変更するものは、必ず一旦コピーして実行して下さい。
  使い方や、元の内容により、元には戻らない場合があります。

                      


  perlの導入  (Ver 5.0を使用してます)

   perl(windows版)は、HDDの肥やしになっていたものです。
   日本語化(Jperl)もインストールした記憶もあります。

   http://www.perl.com  からダウンロードできるようです。 Perl for Win32  (win95,win98用)

   jperl や

   perl バイナリ win32 (又はwindows) で検索しても色々出てきます。

http://www.google.co.jp/search?hl=ja&ie=UTF-8&oe=UTF-8&c2coff=1&q=perl++%E3%83%90%E3%82%A4%E3%83%8A%E3%83%AA%E3%80%80Win32&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja

http://www.google.co.jp/search?hl=ja&ie=UTF-8&oe=UTF-8&c2coff=1&q=%EF%BD%8Aperl++%E3%83%90%E3%82%A4%E3%83%8A%E3%83%AA&lr=lang_ja

                            TOP