找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 25804|回复: 4

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

[复制链接]
发表于 2020-8-5 15:36:19 | 显示全部楼层 |阅读模式
文件名中有很多是带有一些备注,备注在两个#号直接,如何批量删掉两个#号及#号之间的内容,谢谢大家
 楼主| 发表于 2020-8-5 15:47:07 | 显示全部楼层
有的是删除#前面的内容,有的是删除#后边的内容,有的是删除;两个#之间的内容,求大神们分成三个批处理
发表于 2020-8-5 18:10:40 | 显示全部楼层
本帖最后由 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
复制代码
直接运行肯定不行,请修改后运行
 楼主| 发表于 2020-8-11 17:45:45 | 显示全部楼层
#搞笑#今天来到公司
#搞笑#打卡第一天
#搞笑#刷马桶
#搞笑#中午吃饭

举例以上是四个文件夹名,想批量删掉“#搞笑#”。两个#号中间不一定有多少字符,有多有少。
发表于 2020-8-11 19:59:23 | 显示全部楼层
回复 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. )
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 03:13 , Processed in 0.017624 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表