批处理文件重命名多个文件夹中的文件(Batch file to rename files in mu

2019-10-18 01:56发布

我有文件夹和文件结构如下。 我需要一个MS DOS批处理文件在多个文件夹中的文件重新命名。 任何人都可以请大家帮帮忙? TIA。

- 主文件夹

-->Sub Folder1
    --- File1_EN.txt
    --- File2_EN.txt

--> Sub Folder2
    --- File3_EN.txt
    --- File4_EN.txt

我想在文件名后缀“EN”重命名为“ENU”。

Answer 1:

@echo off
for /D %%d in (*) do (
   ren "%%d\File*_EN.txt" "File*_ENU.txt"
)


Answer 2:

您可以通过这种方式做到这一点:

@Echo OFF

Set "Folder=C:\Users\Administrador\Desktop\Nueva carpeta"
Set "Suffix=_EN"
Set "Replace=_ENU"
Set "RegEx=\".*%Suffix%\"$" 

FOR /R "%Folder%" %%# in ("*") DO (
    (Echo "%%~n#"| FINDSTR /I "%RegEx%" 1>NUL) && (
    Set "NewFileName=%%~nx#"
    Call Set "NewFileName=%%NewFileName:%Suffix%=%Replace%%%"
    Call Echo [+] Renaming: "%%~nx#" "%%NewFileName%%"
    Ren "%%#" "%%NewFileName%%"
    )
)

Pause&Exit

该Findstr工具是确保匹配的字符串是一个后缀,比做一个子或“_”字向右分裂文件名更好。



Answer 3:

尝试这个:

ren folder1\file*.txt file*_enu.txt
ren folder2\file*.txt file*_enu.txt


Answer 4:

如果你希望所有子文件夹被改变用途:

for /f "delims=*" %a in ('dir File*_EN.txt /b /s') do ren "%a" File*_ENU.txt


文章来源: Batch file to rename files in multiple folders