HOWTO · Batch

バッチ ファイルでファイル名の X 文字を削除する

バッチ ファイルを作成して、ファイル名の文字を削除できます。

このページの内容

この記事では、バッチ スクリプトを使用してファイルのファイル名から特定の文字を削除する方法について説明します。 以下では、Windows でファイルの名前を変更するいくつかの方法について説明します。

Windows でファイル エクスプローラーの名前を変更する

最も単純なものの 1つであるにもかかわらず、最も柔軟性の低い名前変更の選択肢はファイル エクスプローラーによって提供されます。

  1. 名前を変更するファイルが含まれているフォルダーに移動します。
  2. 目的の名前変更順序でファイルを配置します。
  3. CTRL+A を使用してフォルダ内のすべてのファイルを選択し、コンテキスト メニューから Rename オプションを選択します。
  4. 入力後、新しいファイル名を入力します。

コマンドプロンプトを使用してファイルの名前を一括変更する

Windows コマンド プロンプトは、コマンドの実行、ファイルの修復、バッチ ファイルの実行、およびスクリプトの開始を行うための特別なツールです。 ディスク パーティションの管理と修正、アプリケーションの実行、さらにはファイルの名前変更のバッチ処理など、適切な構文を使用して驚くべきタスクを実行できます。

コマンド プロンプトを使用して、Windows の Batch でファイルの名前を変更する方法を次に示します。

バッチ ファイルの名前変更については、Windows コマンド プロンプトの方が多機能です。

ren コマンドを使用すると、一度に複数のファイルの名前を変更できます。 リネームはrenと略します。

ファイル拡張子を変更し、ワイルドカード文字 * および ? を使用できますが、 このコマンドを使用すると、名前を変更した後にファイルを新しいフォルダーに移動することはできません。

1つのファイルの名前を変更する

1つのファイルの名前を変更するには、次のコマンドを使用します。

ren filename.jpg newfilename.jpg

複数のファイルの数字の名前を変更する

ワイルドカード文字を使用して、多数のファイルの名前を変更できます。 たとえば、次のコマンドを使用して、ファイル名の桁数を変更できます。

ren document??.txt document3??.txt

この場合、クエスチョン マークのワイルドカードは任意の文字として動作するため、プログラムは名前が変更されたファイルを生成しながら、一致するファイルを見つけることができます。

サフィックス付きのファイル名の一括変更

ファイルのコレクションにサフィックスを追加することを検討してください。 次のコマンドを発行することで、これを実現できます。

ren *.* ???????-test.*

アスタリスク ワイルドカードは、このコマンドのすべての文字を置き換えます。 *.* は、このフォルダー内の任意の拡張子のファイルを検索できることを示します。

このコマンドは、2 番目の部分 (すべての疑問符を含む) で最大 7 文字の既存のファイル名を使用するように指示されていますが、接尾辞として -test を追加するように指示されています。 アスタリスクは、すべてのファイル拡張子に適用するようにコマンドに指示します。

次の例のように、プレフィックスを追加する場合は、コマンドの -test 要素を先頭に移動します。

ren *.* test-???????.*

バッチ ファイルでファイル名の X 文字を削除する

バッチ ファイルの名前変更を使用して、ファイル名の一部を削除することもできます。 "jan-budget.xlsx", "feb-budget.xlsx", "mar-budget.xlsx" などの名前を持つ一連のファイルを考えてみましょう。

"-budget" サフィックスは、次のコマンドを使用して削除できます。

ren ???-budget.xlsx ???.xlsx

実際の例を見てみましょう。

ファイルを含むディレクトリがあると仮定すると、各ファイル名の最後の 33 文字を削除する必要があります。 どうすればいいですか?

上記を達成するために使用できるバッチファイルを次に示します。

@echo off
setlocal enabledelayedexpansion

set "folderpath=[Your Folder Here...]"
cd %folderpath%
for /f %%a in ('dir /b "*.txt"') do (
   set "fname=%%~na"
   ren "%%a" "!fname:~0,-33!.txt"
)
endlocal

上記のスクリプトは、指定されたフォルダーに含まれるファイルの最後の 33 文字を削除します。

簡単に言うと、ren コマンドを使用して、Windows で複数のファイルの名前をバッチで変更できます。