ゼノン
私はAWSで仕事してるので、下手なフリーソフトとか入れられません。なのでこの手の仕事は基本全部手動で行うことになります。何度か行うものであればこのようにExcel等で比較用のマクロ等作成していますが、やや忘れがちなので備忘録です。
//テスト用のサンプルフォルダは以下の構成
D:
├─T-01
│ └─N
│ N0001
│ N0002
│ N0003
│
└─T-02
├─M
│ M0001
│ M0002
│ M0003
│
└─N
N0001
N0002
N0003
1. Dirでフォルダ内のファイル名を取得
コマンドプロンプトを起動し、以下コマンドを入力。フォルダパスは該当のフォルダを開いたエクスプローラーのアドレスバーに「cmd」と入力し起動することで下記のように省くことが出来る。
dir /s
//ファイル形式が決まっている場合は以下のように指定すると<DIR>が表示されなくて楽
dir *.txt /s
2. データを整理
出力された全データをテキストエディタなどにコピーし、ファイル名以外の部分(ディレクトリ名とか1個のファイルうんたらかんたら)の部分を削除。
参考マクロ
フォルダ数・ファイル数が多すぎて手動で行うのが大変な場合は以下私が10分で作成したマクロを実行。上記でコピーした一覧のデータを適当なExcelのA1に貼り付け。問答無用で1000行繰り返し、セルの値のはじめ4桁が数値以外の場合に行を削除する。
Sub a()
Dim a As String
Dim b As String
Range("A1").Select
For i = 1 To 1000
a = ActiveCell.Value
b = Left(a, 4)
If IsNumeric(b) Then
ActiveCell.Offset(1, 0).Select
Else
ActiveCell.Rows.Dalete
End If
Next
End Sub
3. 比較用のExcelシートを用意
2.で作成した2つのデータをExcelシートのA列とB列に貼り付け。
日付のみを抽出するように関数を設定。以下左から17桁の文字を取得する関数のため、これをC以降の列に記述。
//C列
=LEFT(A3,17)
//D列
=LEFT(B3,17)
C列とD列が同じ場合はTRUEと表示される関数。
//E列
=EXACT(C3,D3)