はじめに

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

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

2014年8月12日火曜日

BAT : タイムスタンプをファイル名プレフィクスにつけるバッチ

今回から何回かに分けて、多量ファイルの整理に役立つスクリプトを紹介する。

例えば、ハードディスククラッシュ後、復旧ソフト等でぶっこ抜きした、多量のフォルダ所在不明ファイルだ。
分類する情報としては、フォルダが飛んでいるので、ファイル名、タイムスタンプしかない。
このファイルを整理するため、ファイル名先頭に日時文字を付けたり外したりするバッチだ。

Batchのつぼ

XP以降のBatchでは、Batch内である程度の文字列加工ができる。
しかも、工夫次第でワークファイルの出力も必要なくなる。
echo xxxx | findstr /C:"yyyyy"
の実行後、errorlevelを見ることでsearch代わりになるし、
摩訶不思議構文のfor文で指定文字列の部分削除ができる。

又、バッチ内サブルーチンコールでは、%1~%nのパラメタがスタックされるので、%~f1(パラメタ%1をフルパスファイル名に変換)等もサブルーチンパラメタと呼び出し元の双方で個々に保持される。


下記バッチは、例えば "qaz.txt" 2014/08/08 12:34 のファイルを"201408081234qaz.txt"に変換/逆変換してくれる。
バッチ内で使用している"dir /tc"を"dir /tw"にすれば作成日ではなく更新日をプレフィクスにすることもできる。
安全のため、ダイレクトに変更せず、変更するためのバッチをカレントに出力している。
作成されたファイル名変更バッチをエディター等で目視確認してから実行しろし。


fnctime.bat (パラメタで指定したフォルダ配下階層ファイルにプレフィクスとして作成日を付加する)



fnnctime.bat (パラメタで指定したフォルダ配下階層ファイルから,作成日プレフィクスを外す)
bug:元のファイル名先頭が数字だと、消しすぎるバグあり。

0 件のコメント:

コメントを投稿