はじめに

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

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

2014年8月19日火曜日

BAT : プレフィクス外しバッチ

前回の続きだ。
前回紹介した日付プレフィクスをファイル名から外す方のバッチは若干のバグがあった。

実際のタイムスタンプとプレフィクスを比較して、一致していたら外す…などと、高等な事をしようとしてたが、バッチのみでは機能が追いつかなかったってこった。

今回は、"-"を区切り文字として、先頭の部分を消すという低機能。
ただし、前回のプレフィクス付けバッチは、"-"が入ってないぞ。工夫して、"-"を入れてくれ。


Batchのつぼ

壷はなし。前回と大して変わらん。

fnnotime.bat

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:元のファイル名先頭が数字だと、消しすぎるバグあり。