あいしんくいっとオススメ商品レビュー

【Windows】ren,moveコマンドでファイル名を一括変更!ツール不要!

本記事対象
DOSコマンドでファイル名を一括変更したい方

ども。あいしんくいっと(@ithinkitnet)です。

Windowsで作業した証跡を取るために画面キャプチャをたくさん取るのですが、取得したファイル名がたまに間違っていたりして後で修正したりする事が良くあります。

一つや二つならまだしも何十、何百というファイル名を手動で修正するのは並大抵の事ではありません。
適当な一括リネームツールをインストールする、といった手段も考えられますが、現場によっては一切のツール類はインストール禁止といったところもあるので、DOSコマンドを覚えておくと便利になると思います。

moveとrenコマンドでファイル名を一括変更

Windowsでファイル名を変更するために使うDOSコマンドとして「move」と「ren」が用意されています。
ちなみにLinuxでは「move」でなはく、「mv」を使ってファイル名を変更する事が出来ますので、どちらかと言えばLinuxが得意な私は良く打ち間違えますw

ファイルパスを確認

まずは下記のコマンドでファイルパスを確認します。
今回はテストとしてc:work以下にテストファイルを3つ用意しました。

テストファイルを用意
c:work>dir /s /b c:work
c:worktest001
c:worktest002
c:worktest003

moveコマンドでファイル名変更

moveの場合、ファイルのフルパスに対してフルパスで記述することでファイル名変更出来ます。

moveでファイル名変更
c:work>move c:worktest001 c:worktest001_rename
1 個のファイルを移動しました。

c:work>move c:worktest002 c:worktest002_rename
1 個のファイルを移動しました。

c:work>move c:worktest003 c:worktest003_rename
1 個のファイルを移動しました。
ファイル名変更確認
c:work>dir
ドライブ C のボリューム ラベルは Windows7_OS です
ボリューム シリアル番号は 1187-2800 です

c:work のディレクトリ

2015/03/31 23:23.
2015/03/31 23:23..
2015/03/31 23:11 0 test001_rename
2015/03/31 23:11 0 test002_rename
2015/03/31 23:11 0 test003_rename
3 個のファイル 0 バイト
2 個のディレクトリ 41,815,855,104 バイトの空き領域

moveコマンドでファイル名が変更出来ました。

renコマンドでファイル名変更

続いて、renを使ってファイル名を変更したいと思います。

renでファイル名変更
c:work>ren c:worktest001_rename test001

c:work>ren c:worktest002_rename test002

c:work>ren c:worktest003_rename test003
ファイル名変更確認
c:work>dir
ドライブ C のボリューム ラベルは Windows7_OS です
ボリューム シリアル番号は 1187-2800 です

c:work のディレクトリ

2015/03/31 23:28  .
2015/03/31 23:28  ..
2015/03/31 23:11 0 test001
2015/03/31 23:11 0 test002
2015/03/31 23:11 0 test003
3 個のファイル 0 バイト
2 個のディレクトリ 41,815,494,656 バイトの空き領域

ファイル名をフルパスで指定した「move」とは打って変わって「ren」では相対パスで指定します。

ファイル名一括変更用コマンドを生成

「move」と「ren」を試しましたが、どちらも簡単にコマンド生成出来ないと意味がありません。
ですので、for文を使ってループ実行させます。
test001からtest003までのテストファイルを用意し、一括でファイル名変更してみます。

moveコマンドで一括ファイル名変更
c:work>for %i in (test*) do move c:work%i c:work%i_rename

c:work>move c:worktest001 c:worktest001_rename
1 個のファイルを移動しました。

c:work>move c:worktest002 c:worktest002_rename
1 個のファイルを移動しました。

c:work>move c:worktest003 c:worktest003_rename
1 個のファイルを移動しました。
ファイル名変更確認
c:work>dir
ドライブ C のボリューム ラベルは Windows7_OS です
ボリューム シリアル番号は 1187-2800 です

c:work のディレクトリ

2015/03/31 23:40  .
2015/03/31 23:40  ..
2015/03/31 23:11 0 test001_rename
2015/03/31 23:11 0 test002_rename
2015/03/31 23:11 0 test003_rename
3 個のファイル 0 バイト
2 個のディレクトリ 41,814,724,608 バイトの空き領域

c:work>

いきなりfor分を使って間違った処理をしてしまうと大事故になり兼ねないので、あらかじめ「echo」といったコマンドを使って実行されるコマンドを確認しておくと良いと思います。

moveコマンドで一括ファイル名変更のテスト実行
c:work>for %i in (test*) do echo move c:work%i c:work%i_rename

c:work>echo move c:worktest001_rename c:worktest001_rename_rename
move c:worktest001_rename c:worktest001_rename_rename

c:work>echo move c:worktest002_rename c:worktest002_rename_rename
move c:worktest002_rename c:worktest002_rename_rename

c:work>echo move c:worktest003_rename c:worktest003_rename_rename
move c:worktest003_rename c:worktest003_rename_rename

Windowsで大量のファイル名を変更する際には「move」や「ren」をfor文と組み合わせると便利です。

以上、あいしんくいっとでした。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)