【コマンドプロンプト講座】ファイル名を一括で変更する

ファイル名を一括で変更する

コマンドプロンプト講座です。

前回は文字列操作について紹介しました。

【コマンドプロンプト講座】文字列操作

2019.11.29

今回はファイル名を一括で変更する方法について紹介していきます。

それでは見てきましょう。



ファイル名を一括で変更するには

ファイル名を一括で変更していきましょう。

renコマンド

まずは、ファイル名を変更する renコマンドについて説明していきます。

ren 名前変更前のファイル 名前変更後のファイル

非常に簡単です。

それでは、試しに使ってみます。

まずは、cdコマンドを使って、ファイル名を変更するフォルダへ移動しましょう。

テストフォルダ

今回は適当に test.txt というファイルをつくっています。

次に以下のコマンドを実行します。

ren test.txt test2.txt

結果は以下の通りです。

テストフォルダ

無事ファイル名が変更されました。

ワイルドカードを使う

ワイルドカードは任意の文字を表す特殊な文字のことです。

条件に一致するファイルをまとめて指定することができます。

  • * → 任意の長さの文字
  • ? → 任意の1文字

拡張子だけを変更する場合、以下のようなコマンドで変更できます。

ren *.txt *.html

しかし、ファイル名を変更する場合、もう一工夫必要になります。

ファイル名の先頭に 20191219 を追加するバッチファイルです(テキストファイル)。

@echo off

for %%a in (*.txt) do (ren %%a 20191219%%a)

ファイルを対象とした forコマンドのループ処理です。

それでは先程のフォルダに適当なファイルを追加していきましょう。

テストフォルダ

この状態からバッチファイルを実行すると以下のようになります。

テストフォルダ

今日の日付をファイル名の先頭に加えるバッチファイル

それでは、前回記事の内容を踏まえて先程のバッチファイルを改良していきます。

@echo off

set year=%date:~0,4%
set month=%date:~5,2%
set day=%date:~8,2%

set mydate=%year%%month%%day%

for %%a in (*.txt) do (ren %%a %mydate%%%a)

これで自分で日付を手打ちする必要がなくなります。

最後に

いかがでしょうか。

こういった古典的なものも使い込むと結構便利になるものです。

こだわって処理が複雑になりすぎると他の人が読んだときに理解しにくいものになりがちですが、自分で使う分には問題ありません。

歴史を学ぶという意味でも他の言語と比較するとけっこう楽しかったりするので、色々試してみましょう。