ファイルの内容によってファイル名を変更するバッチファイル

2013-02-01
  • ファイル名が「yyyymmdd.txt」のファイルに、まとめて接頭辞を付けるために使用しています。
  • テキストファイルの1行目に含まれるキーワードに応じて、ファイル名がリネームされます。
@echo off
setlocal enabledelayedexpansion
for /F %%A in ('dir /b 20*.txt') do (
    set /P DATA=<%%A
    if not "!DATA:Bain=!" == "!DATA!" copy %%A BAIN_%%A
    if not "!DATA:Mod=!" == "!DATA!" copy %%A MODS_%%A
    if not "!DATA:Tags=!" == "!DATA!" copy %%A TAGS_%%A
    del %%A
)
endlocal
  • テキストファイルの「1行目に特定のキーワードが含まれている」ときにファイル名をリネームする。
  • renではなくcopyを使用しているのは、ディレクトリの移動ができるようにするため。
  • オリジナルファイルを残す場合は、del %%Aをコメントアウト。

リネーム条件

対象ファイル

  • ファイル名の頭が[20]のテキストファイル。
  • 例. 20130101_000000.txt

リネームパターン

1行目の内容 キーワード 付加する接頭辞
Bain Packages: Bain BAIN_
Active Mod Files: Mod MODS_
=== Current Bash Tags: Tags TAGS_
  • 例. 20130101_000000.txt の 1行目が "Bain Packages:" の場合
  • BAIN_20130101_000000.txt
関連記事
DOSバッチ
ありません