如何批处理删除文件名中指定字符前的部分内容?

一批文件如下:
ABC_asdef_bcdde_20170825001.txt
ABC_asdef_bcdde_20170825002.txt
ABC_asdef_bcdde_20170825003.txt
………………
其中,ABC、asdef、bcdde都是长度不定内容不定的字符
想修改为:
20170825001.txt
20170825002.txt
20170825003.txt
………………
请教高手指导!
@echo off
setlocal enabledelayedexpansion
set /p str=请输入要删除哪个字符串前的内容:
for %%i in ("*%str%*") do (
set "FileName=%%i"
set "FileName=!FileName:*%str%=%str%!"
echo !FileName!
ren "%%i" "!FileName!"
)
pause

这个程序只能删除ABC,请高手多加指导!

第1个回答  2017-08-25

如果文件名中的日期格式全部遵循yyyymmddxxx的话,下面的代码可以解决你这个问题:

@echo off
setlocal enabledelayedexpansion
for /f "delims=? tokens=* eol=?" %%a in ('dir /b *.txt') do (
 set f=%%a
 set "f=!f:~-15!"
 rename %%a !f!
)
echo Done.
pause>nul

请把此批处理放在待处理文件旁运行,运行前请先做好备份,以防万一。

本回答被提问者和网友采纳

如何批处理删除文件名中指定字符前的部分内容?
如果文件名中的日期格式全部遵循yyyymmddxxx的话,下面的代码可以解决你这个问题:echo offsetlocal enabledelayedexpansionfor \/f "delims=? tokens=* eol=?" %%a in ('dir \/b *.txt') do ( set f=%%a set "f=!f:~-15!" rename %%a !f!)echo Done.pause>nul请把此批处理放在待处理文件...

批处理如何去掉\/删除文件名中的指定字符
中文内容的部分自己替换成需求的文件格式,和需要处理的文字 echo off & SETLOCAL ENABLEDELAYEDEXPANSIONrem 开启变量延迟扩展rem 遍历批处理所在目录的对应格式的文件for \/f %%i in ('dir\/w\/b *.txt') do (set Filename=%%iecho. 替换前的名字:!Filename!rem 字符串处理set rFilename=!Filename...

用批处理删除指定文件中字符串前面的文字?
楼主问了两个次哦,怎么也没别人来答,那我就再改写一个吧,处理会保留空行、查找不分大小写 (他这个删指定字符之下的代码要是文件名有空格会出错)echo off&SetLocal EnableDelayedExpansion set "str=UID"for \/f "delims=" %%s in ('findstr \/m \/i \/c:"%str%" "*.txt"')do (set fla...

请问批处理如何当前文件夹批量删除文件前辍?
另存为xx.bat,编码选ANSI\/GB2312,跟要处理的多个文件或文件夹放一起双击运行<# :cls&echo off&cd \/d "%~dp0"&mode con lines=5000rem 将当前目录下所有文件的名称开头的指定前缀字符删除path %SYSTEMROOT%\\System32\\WindowsPowerShell\\v1.0;...

怎么样使用批处理删除一个文本里面的所以信息啊
使用文件解析来处理命令输出、字符串及文件内容。使用迭代变量定义要检查的内容或字符串,并使用各种options选项进一步修改解析方式。使用options令牌选项指定哪些令牌应该作为迭代变量传递。请注意:在没有使用令牌选项时,\/F 将只检查第一个令牌。文件解析过程包括读取输出、字符串或文件内容,将其分成独立的...

bat批量移除文件名中指定字符
1、右键单击需要删除的文件,然后选择属性选项。2、之后在属性界面找到安全,然后单击安全,接着单击安全下方的编辑。3、然后将新弹出界面中间的“Authenticated Users的权限”中的完全修改项调整为允许。4、最后单击最下方的应用和确定就完成了administrators权限的设置,之后就可以正常删除该文件了。bat就可以...

bat批处理文件夹下所有子文件夹和文件删除特定字符前后内容?
不清楚你的实际文件\/情况,仅以问题中的样例说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件或文件夹放一起双击运行 <# :cls&echo off&cd \/d "%~dp0"&mode con lines=5000rem 将当前目录下所有文件和文件夹的名称末尾的一个指定字符及其后面的字符删除,...

批处理删除文件名中的指定文字
批处理 存为myren.bat,放在目标文件夹下,然后在cmd中进入目标路径,输入:myren.bat 任意内容 然后程序就会把所有mp4文件名中的“任意内容”删掉。echo off setlocal enabledelayedexpansion for \/f "delims=" %%i in ('dir *.mp4 \/a \/b') do (set f=%%i set nf=!f:%1=!ren !f! !nf!

批处理 如何删除文本中含有指定字符串所在的行?
echo off & title 删除特定后缀名的行内容 By 依梦琴瑶 cd \/d "%~dp0"::设置文本列表 set List=D:\\TestFiles.txt ::设置要删除的特定后缀名,用英文逗号隔开 set Ext=json,xml (for \/f "usebackq delims=" %%a in ("%List%") do (set "Skip="for %%b in (%Ext%) do (if \/i...

批处理:如何批量删除文件夹名字中的部分字符?
for \/f "tokens=1-2 delims= "a in ('dir\/b 文件*.*')do ren "%%a b"b 保存为批处理,放到文件夹所在目录执行

相似回答