[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] BAT怎么批量删除文件名两个字符中间的内容,包含字符

文件名中有很多是带有一些备注,备注在两个#号直接,如何批量删掉两个#号及#号之间的内容,谢谢大家

有的是删除#前面的内容,有的是删除#后边的内容,有的是删除;两个#之间的内容,求大神们分成三个批处理

TOP

本帖最后由 wujunkai 于 2020-8-5 18:28 编辑

所有的文件名都有两个#号吗?
假设所有文件名都带两个#号
  1. @echo off
  2. call:test
  3. set /P=请理解代码逻辑后自行修改调用
  4. goto:eof
  5. :del_front
  6.     rem 文件名用%~1传递
  7.     rem 处理过的文件名储存在 %new_file% 中
  8.     set "old_file=%~1"
  9.     for /F "tokens=1,2,3 delims=#" %%a in ("%old_file%") do set "new_file=%%b#%%c"
  10. goto:eof
  11. :del_middle
  12.     rem 逻辑同上
  13.     set "old_file=%~1"
  14.     for /F "tokens=1,2,3 delims=#" %%a in ("%old_file%") do set "new_file=%%a%%c"
  15. goto:eof
  16. :del_back
  17.     rem 逻辑同上
  18.     set "old_file=%~1"
  19.     for /F "tokens=1,2,3 delims=#" %%a in ("%old_file%") do set "new_file=%%a#%%b%~x1"
  20. goto:eof
  21. :test
  22.     rem 测试代码
  23.     set "example=one#two#three.jpg"
  24.     echo 原文件名       %example%
  25.     call:del_front  "%example%"
  26.     echo 删去第一部分   %new_file%
  27.     call:del_middle "%example%"
  28.     echo 删去第二部分   %new_file%
  29.     call:del_back   "%example%"
  30.     echo 删去第三部分   %new_file%
  31. goto:eof
复制代码
直接运行肯定不行,请修改后运行

TOP

#搞笑#今天来到公司
#搞笑#打卡第一天
#搞笑#刷马桶
#搞笑#中午吃饭

举例以上是四个文件夹名,想批量删掉“#搞笑#”。两个#号中间不一定有多少字符,有多有少。

TOP

回复 4# ColorRazer


举例4.bat
  1. @echo off
  2. for /f "tokens=1,* delims=#" %%i in ('dir /b /ad #*#*') do (
  3.     ren "#%%i#%%j" "%%j"
  4. )
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表