Windowsコマンドラインを使用して、何千ものファイルの拡張子をどのように変更できます*****.jpg
か?
Windowsコマンドラインを使用して、何千ものファイルの拡張子をどのように変更できます*****.jpg
か?
回答:
あなたが使うことができますren
(renameのように):
ren *.XXX *.YYY
そしてもちろん、適切な拡張子のためにXXXとYYYを切り替えます。それは変わりますから XXX に YYY。すべての拡張子を変更する場合は、ワイルドカードをもう一度使用します。
ren *.* *.YYY
この作業を再帰的に行う1つの方法は、FOR
コマンドを使用することです。/R
一致するファイルにコマンドを再帰的に適用するオプションとともに使用できます。例えば:
for /R %x in (*.txt) do ren "%x" *.renamed
現在のディレクトリから始めて、すべての.txt
拡張子を.renamed
再帰的に変更します。
%x
一致したファイル名を保持する変数です。
また、何千ものファイルがあるので、カーソルが再び点滅し始め、それが機能していることを示すまで待つようにしてください。
注:これはcmdでのみ機能します。PowershellまたはBashでは機能しません
ren *.* *.jpg > E:\Log\Cmd\ExtChange\ext.txt
?
FOR
名前変更の動作は、「直感的ではない」場合があります。例えば...
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になります。
注:Windows用ではありません
ren-1.0を使用した場合の正しい形式は次のとおりです。
"ren *.*" "#2.jpg"
から man ren
置換パターンは、ワイルドカードインデックスが埋め込まれた別のファイル名です。ワイルドカードインデックスはそれぞれ、文字#とそれに続く1〜9の数字で構成されます。一致するファイルの新しい名前では、ワイルドカードインデックスは、参照された文字列と一致した実際の文字に置き換えられます。元のファイル名のワイルドカード。
そして
シェルは通常、ワイルドカード*および?を展開することに注意してください。これは、renの場合は望ましくありません。したがって、ほとんどの場合、検索パターンを引用符で囲む必要があります。
man ren
?問題はWindows /に関するものでしたcmd
。それらは現在man
ページを提供していますか?どのような状況でren-1.0
、どのようにしてそのman
ページを表示できますか
複数のファイル拡張子の名前を変更します。
変更したいringtone1.mp3
、ringtone2.mp3
にringtone1.wav
、ringtone2.wav
これを行う方法は次のとおりです。コマンドプロンプト(CMD)でdドライブにいるので、次のように使用します。
d:\>ren *.* *.wav
これはファイル拡張子のほんの一例であり、WAV、MP3、JPG、GIF、bmp、PDF、DOC、DOCX、TXTなど、あらゆるタイプのファイル拡張子を使用できます。これは、オペレーティングシステムによって異なります。
また、何千ものファイルがあるので、カーソルが再び点滅し始め、それが機能していることを示すまで待つようにしてください。
私の場合、800以上のファイルで終わるディレクトリ.StoredProcedure.sql
がありました(それらはSSMSでスクリプト化されていました)。
上記の解決策は機能しませんでした。しかし、私はこれを思いつきました:
(バッチプログラミングへの回答に基づく-ファイルの相対パスを取得)
@echo off
setlocal enabledelayedexpansion
for %%f in (*) do (
set B=%%f
set B=!B:%CD%\=!
ren "!B!" "!B:.StoredProcedure=!"
)
上記のスクリプトは.StoredProcedure
、ファイル名から部分文字列を削除します。私はそれがより多くのケースをカバーし、入力を求め、全体的にもっと一般的になるように適応させることができると確信しています。
set
コマンドを次の1 つのコマンドに置き換えますset "B=%%~nxf"
。(%%~nxf
あるN AMEおよびe のxの張力%%f
)。%cd%
再帰的に行うと、無効になる可能性があります。
私はこれがとても古いことを知っていますが、私はそれに着陸しました、そして提供された答えはpowershellでは私にとってうまくいきませんでしたので、検索した後、この解決策を見つけました
PowerShellでそれを行うには
Get-ChildItem -Path C:\Demo -Filter *.txt | Rename-Item -NewName {[System.IO.Path]::ChangeExtension($_.Name, ".old")}
クレジットはhttp://powershell-guru.com/powershell-tip-108-bulk-rename-extensions-of-files/に移動します