怎么用bat批量去掉文件名最后的“_”和“数字”?

作者&投稿:毛皇 (若有异议请与网页底部的电邮联系)
批处理把文件名最后的数字留下其他的都去掉~

set "pbuf=D:\WorkTemp\dosp"

@echo off
color 0b & cls & title 整理文件名
echo.
echo.&echo 整理文件名
echo.&echo 不区分中英文文件名
echo.&echo 但是文件名不要包含*^&^|^>等特殊字符
echo.
pushd %pbuf%
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /o /b /s *.txt') do (
set "nbuf=%%~ni"
set nbuf=!nbuf: =!
call :made
set nbuf=!nbuf!.txt
ren "%%i" !nbuf!
echo 处理 "%%i" !nbuf!
)
endlocal
popd
set /p =处理完成,<nul&pause
goto :last

:made
set a=%nbuf%

set a=%a:*a=%
set a=%a:*b=%
set a=%a:*c=%
set a=%a:*d=%
set a=%a:*e=%
set a=%a:*f=%
set a=%a:*g=%

set a=%a:*h=%
set a=%a:*i=%
set a=%a:*j=%
set a=%a:*k=%
set a=%a:*l=%
set a=%a:*m=%
set a=%a:*n=%

set a=%a:*o=%
set a=%a:*p=%
set a=%a:*q=%
set a=%a:*r=%
set a=%a:*s=%
set a=%a:*t=%

set a=%a:*u=%
set a=%a:*v=%
set a=%a:*w=%
set a=%a:*x=%
set a=%a:*y=%
set a=%a:*z=%

if not "%a%"=="" set nbuf=%a%
goto :EOF

@echo off:startmove "D:e\sys_cna????.txt" "D:e\sys_cna.txt"ping 127.1 -n 2 & goto :start

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,-7%!.jpg

)

Pause


 

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

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

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

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

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



不清楚你的实际文件/情况,仅以问题中的样例/说明为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起运行
/*&cls
@echo off
rem 去掉/删除文件名末尾的特定数字序号后缀字符串
mode con lines=3000
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
dir /a-d/b/s *.jpg|cscript -nologo -e:jscript "%~f0"
echo;%#% +%$%%$%/%@% %z%
pause
exit
*/
var fso=new ActiveXObject('Scripting.FileSystemObject');
while(!WSH.StdIn.AtEndOfStream){
var line=WSH.StdIn.ReadLine();
var f=fso.GetFile(line)
var ext=fso.GetExtensionName(f.Path);
var oldbase=fso.GetBaseName(f.Path);
var newbase=oldbase.replace(/_\d+$/,'');
if(oldbase != newbase){WSH.echo(line+' --> '+newbase+(ext==''?'':'.'+ext));}
}


怎么用bat命令批量删除很多TXT文本中前3行和后3行?
可以删除后三行的 echo off&setlocal enabledelayedexpansionset TxtDir="D:\\文档"echo 开始操作,请稍侯...cd \/d %TxtDir%for \/f "delims=" %%a in ('dir \/a-d\/b *.txt') do ( for \/f "delims=" %%b in ('type "%%~a"') do set \/a n+=1 set \/a n=!n!-3 ...

用bat如何批量删除含有指定部分名称的文件?
批量删除文件是危险的事,一旦拍入字符有错,会带来很大的麻烦.保险一点分2步做:(1) 在命令窗, 根目录处,拍命令:dir p10*.jpg \/S \/B > a.lis 你获得所有要删的含有p10名称的jpg图片, 文件名含全路径。存放在 a.lis 里。用 notepad a.lis 打开来看一下, 确认后 再做第二步:(2)在...

【再次求教】用 BAT 批量去除文件名中的空格, 想要CMD的窗口能显示出...
txtecho内容>文件名.txt例子:echo我爱你>秘密.txt在同目录下创建一个文件--秘密.txt,将它打开里面有一句:我爱你echo你会爱我吗>>秘密.txt追加保存内容到文件打开秘密.txt会发现我爱你下面又多出了一句:你会爱我吗echo与内容要用空哥隔开或是.echo.则在窗口显示中视为一个空行例子在批处理文件中...

请问如何制作一个BAT文件,批量清除某路径下多个TXT文件中的内容(注...
如果你不是清空某目录下的所有txt内容,而要清空的txt并无规律,有两种方法:1.将要清空的txt拖到此批处理上即可清空其内容:echo off cd.>"%~1"exit 2.将要处理的文本写个列表进行清空处理:echo off for \/f "skip=5 delims=" %%a in ('type "%~0"') do cd.>"%%a"echo 处理完成,按任意...

BAT怎样批量删除文件夹中,除了txt后缀名文件外的其他文件
::---@echo off setlocal EnableDelayedExpansion set _targetDir=C:\\Users\\ShiningWang\\test set _thisFilePath=%0 :loop for \/r %_targetDir% %%i in (*.*) do (REM 文件全路径 set _filePath=%%i REM 不删除批处理本身 if not "!_filePath!"==%_thisFilePath% (REM 截取文件后缀 se...

bat如何删除批量删除图片,例如文件夹下有5000张图片,名字已经按照1到500...
echo offrem 删除多个指定名称的图片文件set #=Any question&set $=Q&set\/az=0x53b7e0b4title %#% +%$%%$% %z%cd \/d "%~dp0"for \/f "delims=:" %%a in ('type "%~f0"^|findstr \/n "^exit$"') do set last=%%afor \/f "skip=%last% delims=" %%a in ('type "%~f0"...

如何用bat批量删除文件名中指定字符后面的字符串
echo offfor \/f "tokens=1,2* delims=_" %%a in ('dir \/a-d\/b') do if exist "%%~a_%%~b" ren "%%~a_%%~b" "%%~a%%~xb"pause 脚本放在文件一起后运行即可

如何利用bat文件实现批量删除同名子文件夹
echo off for \/f "delims=" %%a in ('dir \/s \/b \/ad log save') do (echo 删除%%a rd \/s \/q "%%a")pause 在XX文件夹中运行批处理。

如何用bat批处理,批量删除文件夹里面指定大小以下的小文档? 比如小于2...
echo off rem 删除小于4字节的小txt文件(实际是空文件)for \/r %%F in (*) do if %%~zF LSS 21000 echo del "%%F">>list.txt 然后核对下list.txt里是不是你要删除的文件名称,如果是的话,把list.txt改成list.bat,双击执行删除,就搞定了。上图是我刚用过的,删除小于4字节的文本文件...

求批处理命令bat,批量删除jpg文件的后几位文件名
注意:9是怎么来的,比如你要删除的内容_0_75共有5位,删除的时候会把后面的内容(即_0_75.jpg)全部删掉,所以加起来要删除的是9位。(后面代码里已补上.jpg,不用担心)3、保存,将文本文档的后缀名“.txt”改成“.bat”4、双击bat文件,按任意键一下,完成。5、注意:此文件夹内的所有...

洛龙区18636323699: 需求一个自动修改文件名的bat程序 批量删除文件名的最后三位 -
化安康诺: 你好,你可以试试下面的bat程序,请在要修改的当前目录中运行1 2 3 4 5 6 7 8@echo off&setlocal enabledelayedexpansion attrib +s +r "%~f0" for /r %%a in (*) do (for /f "tokens=1-2 delims=."%%b in ("%%~nxa") do (set str=%%b&& set str=!str:~0,-3!&ren "%%a""!str!.%%c") ) pause

洛龙区18636323699: bat批量删除文件名最后一位. -
化安康诺: @echo off setlocal enabledelayedexpansion for %%a in (*.jpg) do ( set "newName=%%a" set "newName=!newName:^(=!" set "newName=!newName:^)=!" set "newName=!newName:(=!" set "newName=!newName:)=!" ren "%%a" "!newName!")

洛龙区18636323699: 当前文件夹下所有文件重命名,去掉文件名后面固定几位的bat怎么写? -
化安康诺: @Echo Off&Setlocal Enabledelayedexpansion For /f "tokens=*" %%i in ('dir /a-d /b "%~dp0*.*"^|findstr /v /c:"%~nx0"') do ( Set "fn=%%~ni" Set fn=!fn:~0,-3!Ren "%%i" "!fn!%%~xi") Pause以上内容请用记事本保存为批处理文件(xx.bat).其中的 "-3"表示去掉文件倒数3个字符,可以修改为 -4,-5,就是去掉文件名后面倒数4位和5位.

洛龙区18636323699: 怎样删除文件夹里所有文件名最后的空格 -
化安康诺: 楼主,用批处理来实现吧,将一下代码保存为批处理(.bat)放到要除空格的文件夹了运行,它将为你去除文件名最后的空格.@echo off&setlocal Enabledelayedexpansion for /f "delims=" %%a in ('dir /b "*.mp3"') do ( set var=%%~na if "!var:~-1!"==" " set var=!var:~0,-1!&ren "%%a" "!var!%%~xa") echo.&echo ok&pause>nul

洛龙区18636323699: 批量删除文件夹名称的后三位字符 -
化安康诺: 用软件Replace Pioneer按照以下步骤可以删除文件名指定字符后的内容:打开Tools->Batch Runner菜单 把待处理文件从文件管理器拖拽到Batch Runner沪花高拘薨饺胳邪供矛窗口中 选中Set output filename选项,把后面的${FILENAME}改为:${FILENAME}{replace,'\.hfs.*','.hfs'} 把鼠标移到output file一列,观察该列的新文件名预览是否正确,然后点击File Rename即可.

洛龙区18636323699: bat怎么批量去除文件名下划线 - 后包含下划线的字符? -
化安康诺: 不清楚你的实际文件/情况,仅以问题中的样例/说明为据复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起运行12345678910111213141516 @echooffrem 删除文件名中的指定字符(下划线)及其后面的字符内容set#=Any ...

洛龙区18636323699: 用 bat如何批量删除含有指定部分名称的文件? 1.比如我想/彻底/删除E盘内所有,包括其所 -
化安康诺: @echo off del/f/s/q *p10*.jpg>nul 2>nul

洛龙区18636323699: 批量删除文件名中最右边的N个字符 -
化安康诺: @echo off rem 删除文件名末尾最后几个字符 set @=Any question&set #=Q&set/az=0x53b7e0b4 title %@% +%#%%#% %z% set "fd=%~dp0" cd /d "%fd%":input set "n="&set /p n=输入删除的字符个数:set direction=右 if not defined n ...

洛龙区18636323699: 如何用批处理bat,删除文本中包含的文件名 -
化安康诺: 这样,把下面的批处理存为del_fn_in_txt.bat @echo off setlocal enabledelayedexpansion if exist _%1 del _%1 set fn=%1 set n=%~n1 for /f "delims=" %%i in (%fn%) do ( set ln=%%i echo !ln:%n%=!>>_%fn%)该批处理只有1个问题,就是您的文本中如果含有英文!,则处理后会被全部滤掉.这段批处理运行时要这样:del_fn_in_txt.bat 七夕.txt 然后结果会存在:_七夕.txt中.

洛龙区18636323699: 程序编译,制作一个bat文件,批量删除某些特定名称的文件,应如何编写,有范例代码么? -
化安康诺: 1.删除特定扩展名: del /f /s /q "c:\hello\*.txt" ::删除c:\hello\文件夹下所有的txt文件. 2.删除特定名字命令的文件 @echo off Set /p a=请输入要删除的特定文件名: del /f /s /q "c:\hello\*%a%*.*"::加入输入baby,则会删除c:\hello文件夹下所有的名字中含有baby的文件.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网