web-dev-qa-db-ja.com

Windowsで1つのコマンドでフォルダ内のすべてのファイルの拡張子を変更する

Windowsのコマンドラインを使用して、何千ものファイルの拡張子を*****.jpgに変更する方法を教えてください。

132
Berker Yüceer

renを使用することができます(renameのように)。

ren *.XXX *.YYY

そしてもちろん、XXXとYYYを適切な拡張子に切り替えます。 from XXX to YYYに変わります。すべての拡張子を変更したい場合は、ワイルドカードをもう一度使用してください。

ren *.* *.YYY

これを再帰的に機能させる1つの方法はFORコマンドを使うことです。一致するファイルに再帰的にコマンドを適用するために/Rオプションと共に使用できます。例えば:

for /R %x in (*.txt) do ren "%x" *.renamed

現在のディレクトリから始めて、すべての.txt拡張子を.renamedに再帰的に変更します。 %xは、一致したファイル名を保持する変数です。

そして、あなたは何千ものファイルを持っているので、カーソルが再び明滅し始めるのを待って、それがうまくいったことを示してください。

注:これはcmdでのみ機能します。 PowershellやBashでは動作しません

271
keyser

cMDで

タイプ

ren *.* *.jpg

すべてのファイルを選択し、*(これまでの名前)とjpgの拡張子に名前を変更します。

17
Habib

振る舞いの変更は「直観的ではない」ことがあります。例えば...

ren * .THM * .jpgはTHMファイルの名前を.jpgに変更します。例:GEDC003.THMはGEDC003.jpgになります

ren * .THM * b.jpgは、THMファイルの名前を* .THMb.jpgに変更します。例:GEDC004.THMはGEDC004.THMb.jpgになります

ren * .THM * .b.jpgはTHMファイルの名前を* .b.jpgに変更します。例:GEDC005.THMはGEDC005.b.jpgになります。

9
PictureGuy

注:Windows用ではありません

Ren-1.0を使うと正しい形式は次のとおりです。

"ren *.*" "#2.jpg"

man renから

置換パターンは、ワイルドカードインデックスが埋め込まれた別のファイル名です。各ワイルドカードインデックスは、1から9までの数字が後に続く文字#から構成されます。元のファイル名の中のワイルドカード。

そして

シェルは通常ワイルドカード*と?を展開することに注意してください。renの場合は望ましくありません。したがって、ほとんどの場合、検索パターンを引用符で囲む必要があります。

7
gbonetti

それは簡単です

ren *.* *.jpg

コマンドプロンプトでこれを試してください

6
Imran Rizvi

バッチファイルでこれを実行しようとしている人々のためだけに、このコードは働いています:

FOR /R "C:\Users\jonathan\Desktop\test" %%f IN (*.jpg) DO REN "%%f" *.png

この例では、C:\ Users\jonathan\Desktop\testディレクトリにある.jpg拡張子を持つすべてのファイルが* .pngに変更されています。

2
Jonathan

複数のファイル拡張子を変更します。

ringtone1.mp3ringtone2.mp3ringtone1.wavringtone2.wavに変更します

これを行う方法は次のとおりです。コマンドプロンプト(CMD)でDドライブに入っているので、次のように使用します。

d:\>ren *.* *.wav 

これはファイル拡張子の一例です。WAV、MP3、JPG、GIF、bmp、PDF、DOC、DOCX、TXTのようなあらゆる種類のファイル拡張子を使用できます。

そして、あなたは何千ものファイルを持っているので、カーソルが再び明滅し始めるのを待って、それがうまくいったことを示してください。

2
nanduvtlr

私の場合、.StoredProcedure.sqlで終わる800以上のファイルを含むディレクトリがありました(それらは SSMS でスクリプト化されていました)。

上記の解決策はうまくいきませんでした。しかし、私はこれを思い付きました:

バッチプログラミング - ファイルの相対パスを取得 への回答に基づく)

@echo off
setlocal enabledelayedexpansion
for %%f in (*) do (
  set B=%%f
  set B=!B:%CD%\=!
  ren "!B!" "!B:.StoredProcedure=!"
)

上記のスクリプトは、ファイル名からサブストリング.StoredProcedureを削除します。私はそれがもっと多くのケースをカバーし、入力を求め、そして全体的により一般的になるように適応できると確信しています。

1
Marc.2377