标题: [文件操作] [已解决]如何根据指定文本的内容批量重命名文件? [打印本页]
作者: lxh623 时间: 2016-3-13 13:56 标题: [已解决]如何根据指定文本的内容批量重命名文件?
本帖最后由 lxh623 于 2016-3-14 19:09 编辑
E:\ABC Book\佛教--cbeta汉文大藏经_epub_201405
下面有很多文件夹,内有许多epub文件(几千)。
想按照文本a命名。文本a内容如下:
A091n1066--新译大方广佛华严经音义--唐 慧菀述
T01n0001--长阿含经--後秦 佛陀耶舍共竺佛念译
T01n0002--七佛经--宋 法天译
T01n0003--毘婆尸佛经--宋 法天译
T01n0004--七佛父母姓字经--失译
T01n0005--佛般泥洹经--西晋 白法祖译
T01n0006--般泥洹经--失译
现有文件名是
A091n1066
T01n0001
T01n0002
T01n0003
T01n0004
T01n0005
T01n0006
谢谢!
作者: codegay 时间: 2016-3-13 14:09
你也是老号了。这种简单问题也不舍得自己学下。
作者: ivor 时间: 2016-3-13 14:35
本帖最后由 ivor 于 2016-3-13 15:03 编辑
回复 1# lxh623
按照file_list.txt文本的格式修改文件名,运行环境Python3.5- # coding:utf-8
- # python 3.5.1
- # 遍历文件修改文件名
- import os
-
- with open('file_list.txt') as file:
- for i in file:
- i = i.strip().split('--', maxsplit=1)
- for root, dirs, files in os.walk('.'):
- for filename in files:
- if filename == i[0]+'.epub':
- src = '%s\\%s.epub' % (root,i[0])
- dst = '%s\\%s.epub' % (root,i[1])
- print(src)
- os.rename(src,dst)
复制代码
批处理- @echo off
- for /f "tokens=1,* delims=--" %%a in (file_list.txt) do (
- for /f "delims=" %%c in ('dir /b /s %%a.epub') do (
- ren "%%c" "%%b.epub"
- echo %%c
- )
- )2>nul
- pause
复制代码
很高兴能为圣佛贡献一份力量,O(∩_∩)O~
作者: happy886rr 时间: 2016-3-13 19:13
本帖最后由 happy886rr 于 2016-3-13 22:19 编辑
回复 1# lxh623
第三方 ren2- for /f "tokens=1* delims=--" %%a in ('type a.txt') do (ren2 -f -r "%%a.epub" "%%a--%%b.epub")
复制代码
作者: lxh623 时间: 2016-3-13 21:05
我以前的代码只在一个文件夹运行,却说找不到路径。- @echo off
- for /f "delims=*" %%i in ('dir /s/b/a:d-h E:\ABC Book\佛教--cbeta汉文大藏经_epub_201405\A091\') do (
- for /f "tokens=1,* delims=--" %%j in (a.txt) do (
- if exist "%%i\%%j*.epub" ren "%%i\%%j*.epub" "%%j-%%k.epub"
- if exist "%%i\%%j*.txt" ren "%%i\%%j*.txt" "%%j-%%k.txt"
- ))
- pause
复制代码
作者: lxh623 时间: 2016-3-13 21:06
回复 lxh623
按照file_list.txt文本的格式修改文件名,运行环境Python3.5批处理很高兴能为圣佛贡献一份力 ...
ivor 发表于 2016-3-13 14:35
谢谢!批处理命名结果是:七佛父母姓字经--失译
作者: pcl_test 时间: 2016-3-13 21:16
- @echo off&setlocal enabledelayedexpansion
- cd /d "E:\ABC Book\佛教--cbeta汉文大藏经_epub_201405\"
- for /f "tokens=1* delims=-" %%a in (a.txt) do set #%%a=%%b
- for /r %%c in (*.epub) do if defined #%%~nc ren "%%c" "!#%%~nc!%%~xc"
- pause
复制代码
作者: lxh623 时间: 2016-3-13 21:57
pcl_test 发表于 2016-3-13 21:16
还是:新译大方广佛华严经音义--唐 慧菀述
作者: happy886rr 时间: 2016-3-13 22:27
本帖最后由 happy886rr 于 2016-3-13 22:28 编辑
回复 1# lxh623
第三方下载地址http://batch-cn.qiniudn.com/tool/ren2.exe
跟正常批处理一样,就是多下载个ren2.exe和批处理一起放在要改的目录。
作者: pcl_test 时间: 2016-3-13 22:47
回复 8# lxh623
改下
set "#%%a=%%a--%%b"
作者: luotexiaozh 时间: 2016-3-14 14:38
本帖最后由 luotexiaozh 于 2016-3-14 15:45 编辑
- for /f %%a in ('dir /b /s E:\ABC Book\佛教--cbeta汉文大藏经_epub_201405\') do (
- for /f "tokens=1,* delims=" %%b in ('findstr "%%~na" a.txt ') do (
- ren "%%a" "%%b.epub"
- )
- )
复制代码
作者: luotexiaozh 时间: 2016-3-14 16:09
回复 5# lxh623 - @echo off
- for /f "delims=*" %%i in ('dir /s/b/a-d-h E:\ABC Book\佛教--cbeta汉文大藏经_epub_201405\') do (
- for /f "tokens=1,* delims=--" %%j in (a.txt) do (
- if exist "%%~dpi%%j*.epub" ren "%%~dpi%%j*.epub" "%%j-%%k.epub"
- if exist "%%~dpi%%j*.txt" ren "%%~dpi%%j*.txt" "%%j-%%k.txt"
- )
- )
- pause>nul
复制代码
这样子看看
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |