使用Windows Batch重命名文件的一部分

时间:2014-05-03 22:49:42

标签: windows batch-file batch-rename

如何重命名目录中所有文件的某个部分。

实施例

[HorribleSubs] File1 [720p].mkv
[HorribleSubs] File2 [1080p].mkv

必须重命名为

File1.mkv
File2.mkv

3 个答案:

答案 0 :(得分:0)

这是一个简单的批处理,可用于手动重命名单个文件。

@echo off
title Rename Bat
echo This bat must be in the folder that 
echo contains the files to be renamed.
echo Enter File Name
set /p old=
echo Enter New Name
set /p new=
ren "%old%" "%new%"
echo Done
pause

这有一个循环来手动执行多个文件

@echo off
title Rename Bat
echo This bat must be in the folder that 
echo contains the files to be renamed.
:begin
echo Enter File Name
set /p old=
echo Enter New Name
set /p new=
ren "%old%" "%new%"
echo Done
ping -n 3 127.0.0.1 >NUL
goto begin

真正简单的希望它有所帮助。它适用于Windows XP

答案 1 :(得分:0)

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION 
SET "sourcedir=U:\sourcedir"
FOR /f "tokens=2delims=[]" %%a IN (
 'dir /b /a-d "%sourcedir%\[*]*[*].mkv" '
 ) DO (
 SET "newname=%%a"
 ECHO(REN "%sourcedir%\[*]%%a[*].mkv" "!newname:~1,-1!.mkv"
)

GOTO :EOF

这可以解决您的问题。

为了测试目的,所需的REN命令仅为ECHO在您确认命令正确后,将ECHO(REN更改为REN以实际重命名文件。

答案 2 :(得分:0)

放置文件在您要重命名的目录中

@echo off

setlocal enabledelayedexpansion

dir /b ¦ find /v /c "*">filescount.txt

for /f %%f in (filescount.txt) do (
    set /a "nof=%%f-2" 

    for /L %%n in (1 1 !nof!) do (
        for %%a in (*.mkv) do (
            rename "%%a" "file%%n%%~xa"
        )
    )
)