特定の名前、空白を削除し、一意の文字列を追加して複数のファイルの名前を変更するにはどうすればよいですか?

特定の名前、空白を削除し、一意の文字列を追加して複数のファイルの名前を変更するにはどうすればよいですか?

私は持っている特定の名前と空白を削除して名前を変更したいファイルの数、および新しい名前に一意の文字列を追加したい場合:

例えば

"MPKL 100055.jpg" 
"MPKL 200452.jpg" 
"MPKL 500002_thumb.jpg"

上記のファイルの名前を次のように変更します。

"00100055.jpg"
"00200452.jpg"
"00500002_thumb.jpg"

既存の数字の前に 2 つのゼロを付ける必要があります。

答え1

以下の例では、/F の場合ループしてファイル名部分を解析して区切り文字とトークンを設定し、それらを使用して後で使用する変数を設定します。レンコマンド。また、ローカルEnableDelayedExpansionを設定するループ内の反復ごとに rename コマンドを使用して、ループ内で設定された変数の拡張を適切に処理し、適切に使用できるようにします (実行時に解析されません)。

@ECHO ON

SETLOCAL ENABLEDELAYEDEXPANSION
SET SourceDir=C:\Users\User\Desktop\Tester

FOR /F "TOKENS=1-3 DELIMS=. " %%F IN ('DIR /B /A-D "%SourceDir%\*.jpg"') DO (
    SET "part1=%%~F" 
    SET "part2=%%~G" 
    SET "part3=%%~H"
    REN "%SourceDir%\!part1! !part2!.!part3!" "00!part2!.!part3!"
)
GOTO EOF

その他のリソース

答え2

私は頻繁にファイル名を変更するので、とても便利だと思います一括名前変更ユーティリティ無料です。拡張子の変更など、さまざまな方法でフォルダーやサブフォルダー内のファイルやフォルダーの名前を変更できます。

答え3

@echo off

Setlocal enabledelayedexpansion

Set "Pattern=MPKL" 

Set "Replace=00"

For %%# in ("FOLDER_PATH/*.jpg") Do (

    Set "File=%%~nx#"

    Ren "%%#" "!folder!!file!" "!file: =!!File:%Pattern%=%Replace%!"


)

Pause&Exit

関連情報