标题: [文本处理] BAT怎么批量删除文件名两个字符中间的内容,包含字符 [打印本页]
作者: ColorRazer 时间: 2020-8-5 15:36 标题: BAT怎么批量删除文件名两个字符中间的内容,包含字符
文件名中有很多是带有一些备注,备注在两个#号直接,如何批量删掉两个#号及#号之间的内容,谢谢大家
作者: ColorRazer 时间: 2020-8-5 15:47
有的是删除#前面的内容,有的是删除#后边的内容,有的是删除;两个#之间的内容,求大神们分成三个批处理
作者: wujunkai 时间: 2020-8-5 18:10
本帖最后由 wujunkai 于 2020-8-5 18:28 编辑
所有的文件名都有两个#号吗?
假设所有文件名都带两个#号- @echo off
-
- call:test
- set /P=请理解代码逻辑后自行修改调用
- goto:eof
-
- :del_front
- rem 文件名用%~1传递
- rem 处理过的文件名储存在 %new_file% 中
- set "old_file=%~1"
- for /F "tokens=1,2,3 delims=#" %%a in ("%old_file%") do set "new_file=%%b#%%c"
- goto:eof
-
- :del_middle
- rem 逻辑同上
- set "old_file=%~1"
- for /F "tokens=1,2,3 delims=#" %%a in ("%old_file%") do set "new_file=%%a%%c"
- goto:eof
-
- :del_back
- rem 逻辑同上
- set "old_file=%~1"
- for /F "tokens=1,2,3 delims=#" %%a in ("%old_file%") do set "new_file=%%a#%%b%~x1"
- goto:eof
-
- :test
- rem 测试代码
- set "example=one#two#three.jpg"
- echo 原文件名 %example%
- call:del_front "%example%"
- echo 删去第一部分 %new_file%
- call:del_middle "%example%"
- echo 删去第二部分 %new_file%
- call:del_back "%example%"
- echo 删去第三部分 %new_file%
- goto:eof
复制代码
直接运行肯定不行,请修改后运行
作者: ColorRazer 时间: 2020-8-11 17:45
#搞笑#今天来到公司
#搞笑#打卡第一天
#搞笑#刷马桶
#搞笑#中午吃饭
举例以上是四个文件夹名,想批量删掉“#搞笑#”。两个#号中间不一定有多少字符,有多有少。
作者: Batcher 时间: 2020-8-11 19:59
回复 4# ColorRazer
举例4.bat- @echo off
- for /f "tokens=1,* delims=#" %%i in ('dir /b /ad #*#*') do (
- ren "#%%i#%%j" "%%j"
- )
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |