标题: [文件操作] 求助批处理重命名问题,对高手来说可能很简单,对低手却很棘手 [打印本页]
作者: zhqiao 时间: 2024-8-2 22:11 标题: 求助批处理重命名问题,对高手来说可能很简单,对低手却很棘手
问题很简单, 就是如何重命名各子目录下的所有文件为 "子目录名+当前文件名"
下载了很多TV电视剧, 带有字幕子目录和文件, 比如:
E:\TV\Better.Call.Saul.S01\Subs\Better.Call.Saul.S01E01.1080p\3_English.srt 4_Chinese.srt ...
......
E:\TV\Better.Call.Saul.S05\Subs\Better.Call.Saul.S05E08.1080p\3_English.srt 4_Chinese.srt ...
很多季很多集, 所以有很多字幕子目录, 子目录下都有 3_English.srt 等等同名文件
就想把文件 3_English.srt 和 4_Chinese.srt 等等所有字幕文件重命名为 Better.Call.Saul.S01E01.1080p~3_English.srt ....
这样能减少子目录和同名字幕文件, 播放时拖放字幕更便利.
请高手提示一下怎么实现 ?
作者: 77七 时间: 2024-8-2 22:49
- @echo off
- cd /d "%~dp0"
- for /f "delims=" %%i in ('dir /b /s /a-d *.srt') do (
- for /f "delims=" %%d in ("%%~dpi.") do (
- echo ren "%%i" "%%~nxd~%%~nxi"
- )
- )
- pause
复制代码
显示正确,删除echo 再次执行。
作者: zhqiao 时间: 2024-8-2 22:53
本帖最后由 zhqiao 于 2024-8-2 22:57 编辑
修改了某个高手的一个bat, 实现了目的. 虽不知其所以然....
如有存条件错误请指正
:: 240802
:: 重命名当前目录的各子目录下的文件名为 "其父目录名+当前文件名"
:: 即以当前目录下的各子目录名为前缀, 添加到各子目录下的所有文件前
@echo off
cd /d "%~dp0"
for /f "delims=" %%i in ('dir /b /s /a-d *.srt *.ass') do (
for %%j in ("%%i\..") do (
ren "%%i" "%%~nxj__%%~nxi"
)
)
作者: zhqiao 时间: 2024-8-2 23:05
回复 2# 77七
非常感谢.
刚刚自己修改了一个其他帖子里的bat, 能实现但有一句语法不同, 请问以下2句有什么区别?
A) for /f "delims=" %%d in ("%%~dpi.") do (
B) for %%j in ("%%i\..") do (
作者: 77七 时间: 2024-8-2 23:32
回复 4# zhqiao
条条大路通罗马
如 d:\a\. 应该等同于 d:\a ,使用%%~nxd 扩展路径到文件夹名;
d:\a\1.txt\.. 两个点表示上级目录吧,使用 %%~nxd 同样扩展。
解释的不知道对不对,仅供参考。
作者: zhqiao 时间: 2024-8-2 23:45
本帖最后由 zhqiao 于 2024-8-2 23:48 编辑
回复 5# 77七
还需再读点dos教程补补才能读懂, 非常感谢 !
作者: ppll2030 时间: 2024-8-2 23:51
本帖最后由 ppll2030 于 2024-8-2 23:54 编辑
把代码保存为bat文件,放在TV文件夹下,运行后会把子文件夹下所有srt字幕文件更名- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('dir /b /s /a-d *.srt') do (
- for %%j in ("%%i") do (
- set "d=%%~dpj"
- cd/d "!d!.."
- call set "d=%%d:!cd!\=%%"
- rem 运行确认无误,再删除echo,执行更名
- ren %%j "!d:\=-!%%~nxj"
- )
- )
- pause
复制代码
作者: zhqiao 时间: 2024-8-3 00:07
回复 7# ppll2030
收下, 感谢相助 !
作者: Batcher 时间: 2024-8-4 10:01
回复 1# zhqiao
3.3 以子文件夹名称作为文件名的前缀
https://mp.weixin.qq.com/s/_1qzhObTSbc6HRpJy4onhQ
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |