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

[文件操作] 求一个批处理重命名文件和文件夹的代码

[复制链接]
发表于 2025-2-25 21:58:54 | 显示全部楼层 |阅读模式
本帖最后由 rapmq0 于 2025-2-25 22:04 编辑

需要修改的对象:当前文件夹以及子文件夹里面的所有文件夹的名字和文件的名字
需要修改的内容:删除名字中的从第到季的字符,包括第和季,删除空格,删除[和]两个符号
比如文件名是:[老友记] 第1季 S01E01.mkv
需要修改成为:老友记S01E01.mkv


现在用的一个代码,但是只能删除一段字符,不能同时删除多段,要循环很多次才行,文件是挂载的webdav,修改速度很慢,所以需要一次修改完

@echo off
for /r %%i in (*第1季*)do (
  set fn=%%~ni&echo %%i
  call ren "%%i" "%%fn:第1季=%%.*")
pause
发表于 2025-2-25 23:45:45 | 显示全部楼层
本帖最后由 aloha20200628 于 2025-2-25 23:51 编辑

回复 1# rapmq0

  1. @echo off &for /r %%F in ("[*] *第*季 *.*") do for /f "tokens=1-3 delims=[] " %%a in ("%%~nF") do (ren "%%F" "%%a%%c%%~xF")
  2. pause&exit/b
复制代码
发表于 2025-2-26 08:14:38 | 显示全部楼层
回复 1# rapmq0


    文件夹的名字按照什么规律修改?请举例说明
 楼主| 发表于 2025-2-26 10:45:50 | 显示全部楼层
回复 2# aloha20200628


   
没有效果,不知道为什么,直接显示请按任意键继续了
 楼主| 发表于 2025-2-26 10:49:43 | 显示全部楼层
回复 3# Batcher


   
比如这是当前目录的文件夹


这是文件夹里的文件
我需要删除当前文件夹和子文件夹和里面文件名中的 “第N季.”和符号“[”“]”和空格“ ”
发表于 2025-2-26 11:35:35 | 显示全部楼层
回复 4# rapmq0

从5楼提供的示例可见,文件名如
   老友记.第2季.Friends.s02.e11.1995.blueray.2160p.10bit.dv.hdr.hevc.ddp5.1.1.mkv
其中既无 [] 字符亦无空格字符,与1楼所述不同,因此2楼代码的假设当然就扑空了...
楼主须按真实文件名重新明确更名格式
 楼主| 发表于 2025-2-26 11:40:50 | 显示全部楼层
回复 6# aloha20200628


    这个截图的是不带符号的,有些文件带符号,有些不带符号,有些是第1季,有些是第11季,有些是中文的第十一季,这样子的
发表于 2025-2-26 12:01:03 | 显示全部楼层
回复 7# rapmq0

更名后的格式如下
   老友记.Friends.s02.e11.1995.blueray.2160p.10bit.dv.hdr.hevc.ddp5.1.1.mkv
是这样吗?
文件夹也要更名吗?
 楼主| 发表于 2025-2-26 12:04:36 | 显示全部楼层
回复 8# aloha20200628


    嗯嗯,是的就是这样,
 楼主| 发表于 2025-2-26 12:09:32 | 显示全部楼层

像这种就是同时包含符号[]和空格和第N季的
发表于 2025-2-26 12:46:19 | 显示全部楼层
本帖最后由 aloha20200628 于 2025-2-26 14:21 编辑

回复 9# rapmq0

运行后可能须刷新一下资源管理器才可看到更名结果...

  1. @echo off &for /f "delims=" %%F in ('dir/b/s/a-d *第*季*.*') do for /f "tokens=1-2* delims=[]. " %%a in ("%%~nF") do (ren "%%F" "%%a.%%c%%~xF")
  2. for /f "delims=" %%D in ('dir/b/s/ad *第*季*.*^|sort /r') do for /f "tokens=1-2* delims=[]. " %%a in ("%%~nD") do (ren "%%D" "%%a.%%c%%~xD")
  3. pause&exit/b
复制代码
 楼主| 发表于 2025-2-26 12:53:57 | 显示全部楼层
本帖最后由 rapmq0 于 2025-2-26 13:14 编辑

回复 11# aloha20200628


   
有用了,但是没有给文件夹改名,只改了里面文件的名字
 楼主| 发表于 2025-2-26 14:16:45 | 显示全部楼层
解决了,谢谢大佬,辛苦啦,么么哒,爱你哟 @aloha20200628
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 12:38 , Processed in 0.011493 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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