如何批量删除文件名最后几位字符

例如:abgd(D8).jpg fggag(D8).jpg 把(D8)去掉,变成abgd.jpg fggag.jpg

1、在待修改的jpg所在的文件夹内新建一个TXT文本

2、打开这个txt文本,输入下面的文字

@echo off

::Deep Lee

setlocal enabledelayedexpansion

for %%f in (*.jpg) do (

echo %%f

set name=%%f

ren !name! !name:~0,-8%!.jpg

)

Pause

 

注意:8是怎么来的,比如你要删除的内容(D8)共有4位,删除的时候会把后面的内容(即(D8).jpg)全部删掉,所以加起来要删除的是8位。

3、保存,将文本文档的后缀名“.txt”改成“.bat”

4、双击bat文件,按任意键一下,完成。

5、注意:此文件夹内的所有jpg文件都会删除后面4位!都会删除(D8)。如果不是jpg格式换成其他,则需要多修改两处格式“.jpg”,“.mp3”,“.pptx”,“.docx”等等,注意总的位数也要变!此方法是按照删除同样位数的字符数实现的!

6、此方法只适用于本文件夹,子文件夹不能联动。笨办法可以将此bat文件复制进子文件夹,运行。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-11-24
批处理代码如下:
@echo off
set /p str1= 请输入要替换的文件(文件夹)名字符串(可替换空格):
set /p str2= 请输入替换后的文件(文件夹)名字符串(去除则直接回车):
echo.
echo 正在修改文件(夹)名中,请稍候……
for /f "delims=" %%a in ('dir /s /b ^|sort /+65535') do (
if "%%~n
if "%%~nxa" neq "%~nx0" (
set "file=%%a"
set "name=%%~na"
set "extension=%%~xa"
call set "name=%%name:%str1%=%str2%%%"
setlocal enabledelayedexpansion
ren "!file!" "!name!!extension!" 2>nul
endlocal
)
)
exit本回答被网友采纳
相似回答