批处理:批量删除文件名前N个字符

可以把当前目录所包含的所有文件(包括子目录下的文件)进行文件名修改,去掉文件名前N个字符。

 

比如当前目录下的文件如下:

aa12345.txt

bb12345.txt

abc/cc12345.txt

abc/def/dd12345.txt

 

希望得到的结果如下:

12345.txt

12345.txt

abc/12345.txt

abc/def/12345.txt

 

批处理脚本如下:

@echo off
setlocal enabledelayedexpansion

::批量去掉文件名前N个字符,如果有文件夹会搜索文件夹下的每个文件进行修改
set /p format=请输入需要操作的文件格式:
set /p deletenum=请输入需要删除文件名前多少个字符:
for /r %%i in (.) do (
    for /f "delims=" %%a in (' dir /b "%%i\*.%format%" 2^>nul ') do (
		set "t=%%~na"
        ren "%%i\%%a" "!t:~%deletenum%!%%~xa"
    )
)

pause

 

运行脚本即可得到所要结果:

请输入需要操作的文件格式:txt
请输入需要删除文件名前多少个字符:2
请按任意键继续. . .

 

你可能感兴趣的:(批处理)