cmd

【cmd】ファイル名の変更のコマンド(一括で連番に、一部、日付を入れる、テキストから、ワイルドカードなど)で行う方法【コマンドプロンプト】【ren、for、dir】

当サイトでは記事内に広告を含みます
いつも記事を読んでいただきありがとうございます!!! これからもお役に立てる各情報を発信していきますので、今後ともよろしくお願いします(^^)/

この記事では、コマンドプロンプトを用いたファイル名の変更方法について解説していきます。

ポイントとしては`ren`、`for`、`dir`を使用することです。cmd(コマンドプロンプト)などのプログラミングでは初〜中級者の段階では考えるよりも、見て覚えて慣れてしまうのがおすすめなので、ぜひ本記事をご活用くださいませ。

それでは詳しく確認していきます。

※なお、コード内のREMはコメントですので、cmdには入力しないでOKです。

コマンドプロンプトのファイル名の変更コマンド【C直下のrenshuフォルダ内のファイル全てを連番ファイル名に一括変換する

それではまず、C直下のrenshuフォルダ内のファイル全てを連番ファイル名に一括変換するについて解説していきます。

以下のコマンドを使って、Cドライブ直下の「renshu」フォルダ内の全ファイル名を連番に変更する方法を紹介します。


@echo off
setlocal enabledelayedexpansion
set /a i=1
for %%f in (C:\renshu\*) do (
    ren "%%f" "!i!.%%~xf"
    set /a i+=1
)

出力結果の例

コマンドプロンプト上(cmd)での処理のスクショは以下の通りです。

例えば、フォルダ内のファイルが「sample.txt」「example.txt」という名前であれば、これらは「1.txt」「2.txt」という名前に変更されます。

 

コマンドプロンプトのファイル名の変更コマンド【C直下のrenshuフォルダ内のすべてのファイルの末尾に今日の日付を8桁で追加する

ファイル名に日付を追加することで、バージョン管理や更新日の追跡が容易になります

ここでは、各ファイルの末尾に、現在の日付を形式「yyyyMMdd」で追加する方法を見ていきましょう。


@echo off
for %%f in (C:\renshu\*) do (
    set "filename=%%~nf"
    set "extension=%%~xf"
    set "datestamp=%date:~-4%%date:~4,2%%date:~7,2%"
    ren "%%f" "!filename!!datestamp!!extension!"
)

出力結果の例

コマンドプロンプト上(cmd)での処理のスクショは以下の通りです。例えば、「report.docx」は「report20240729.docx」のように変更されます。

コマンドプロンプトのファイル名の変更コマンド【C直下のrenshuフォルダ内のすべてのファイルを対応したテキストファイルから1行ずつ読み込み一括変換する

最後に、C直下のrenshuフォルダ内のすべてのファイルを対応したテキストファイルから1行ずつ読み込み一括変換するについて解説していきます。

以下のスクリプトでは、ファイル名を「names.txt」から読み込み、それに従ってファイル名を変更します。


@echo off
setlocal enabledelayedexpansion
set /a i=1
for /f "delims=" %%a in (names.txt) do (
    set /a fileNum=i
    for %%f in (C:\renshu\*) do (
        if !fileNum! EQU %%~nxf (
            ren "%%f" "%%a"
            set /a i+=1
        )
    )
)

出力結果の例

コマンドプロンプト上(cmd)での処理のスクショは以下の通りです。例えば、フォルダ内のファイルが「1.txt」であり、「names.txt」に「Document1.txt」と記載されている場合、ファイル名は「Document1.txt」と変更されます。