はじめに

多量の行が表示されないように、このブログは1コンテンツしか表示されない。ブログアーカイブから、他の記事を捜してくれ。

環境作れし。
・gawk 3.1.5 for Windows をググッて入手。
・gawk.exeをpathの通ったフォルダにぶち込めし。
 (「windows パスを通す」ググッて)
 (面倒なら、C:\windowsにぶち込む)
・環境変数「awkpath」にスクリプトを保存するフォルダを設定。
 (「環境変数 設定 windows」ググッて)
 (面倒なら、C:\windowsに、紹介されているスクリプトぶち込む)

2013年9月29日日曜日

重複フォルダの整理AwkScript

ZIPファイルを解凍すると、ファイル名と同じ名前のフォルダが作成され、その中にまた同じ名前のフォルダが作成される。
本スクリプトは、カレントフォルダを基点にして、同一名のサブフォルダを統合する動作を行う。

つまり
c:\aaa\bbb\bbb\ccc
c:\aaa\ddd\eee\eee\fff
のフォルダがあるとき、a:\aaaをカレントパスとしてCMDを開き、
allfresh.batを実行すると
c:\aaa\bbb\ccc
c:\aaa\ddd\eee\fff
のフォルダ構成に変更してくれる訳だ。
ただし、同一名の親フォルダ配下に同一名フォルダ以外がある場合、統合しない

注意点:カレントドライブの\tempフォルダをワークフォルダとして使うのでカレントのルートが書込み禁止だと動かない。そのときは、バッチを修正してくれ。

AWKのつぼ

AWKはフォルダ内に".","..",同名フォルダの3フォルダのみが存在してるって確認の為だけに使ってる。
後は、その名前を書いたテンポラリファイルと親フォルダ名を書いたテンポラリファイルをFCコマンドでコンペアして、リネーム用動的バッチファイル(temp\fresh3.bat)をキックする。
動的バッチはfresh.batの2行目で動的バッチ作成用バッチ(fresh1.bat)で作成している。
allfresh.batは基点フォルダから再起呼び出しで、全フォルダ毎にfresh.batを呼び出すだけだね。


allfresh.bat


fresh.bat


fresh1.bat


fresh.awk

0 件のコメント:

コメントを投稿