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

[文件操作] [已解决]如何根据指定文本的内容批量重命名文件?

本帖最后由 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

谢谢!
1

评分人数

你也是老号了。这种简单问题也不舍得自己学下。
1

评分人数

去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

本帖最后由 ivor 于 2016-3-13 15:03 编辑

回复 1# lxh623
按照file_list.txt文本的格式修改文件名,运行环境Python3.5
  1. # coding:utf-8
  2. # python 3.5.1
  3. # 遍历文件修改文件名
  4. import os
  5. with open('file_list.txt') as file:
  6.     for i in file:
  7.         i = i.strip().split('--', maxsplit=1)
  8.         for root, dirs, files in os.walk('.'):
  9.             for filename in files:
  10.                 if filename == i[0]+'.epub':
  11.                     src = '%s\\%s.epub' % (root,i[0])
  12.                     dst = '%s\\%s.epub' % (root,i[1])
  13.                     print(src)
  14.                     os.rename(src,dst)
复制代码
批处理
  1. @echo off
  2. for /f "tokens=1,* delims=--" %%a in (file_list.txt) do (
  3. for /f "delims=" %%c in ('dir /b /s %%a.epub') do (
  4. ren "%%c" "%%b.epub"
  5. echo %%c
  6. )
  7. )2>nul
  8. pause
复制代码
很高兴能为圣佛贡献一份力量,O(∩_∩)O~
2

评分人数

#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

本帖最后由 happy886rr 于 2016-3-13 22:19 编辑

回复 1# lxh623
第三方 ren2
  1. for /f "tokens=1* delims=--" %%a in ('type a.txt') do (ren2 -f -r "%%a.epub" "%%a--%%b.epub")
复制代码
1

评分人数

    • lxh623: 我愚钝。不知道是不是和普通批处理一样运行 ...技术 + 1

TOP

我以前的代码只在一个文件夹运行,却说找不到路径。
  1. @echo off
  2. for /f "delims=*" %%i in ('dir /s/b/a:d-h E:\ABC Book\佛教--cbeta汉文大藏经_epub_201405\A091\') do (
  3.       for /f "tokens=1,* delims=--" %%j in (a.txt) do (
  4.          if exist "%%i\%%j*.epub" ren "%%i\%%j*.epub" "%%j-%%k.epub"
  5.          if exist "%%i\%%j*.txt" ren "%%i\%%j*.txt" "%%j-%%k.txt"
  6. ))
  7. pause
复制代码

TOP

回复  lxh623
按照file_list.txt文本的格式修改文件名,运行环境Python3.5批处理很高兴能为圣佛贡献一份力 ...
ivor 发表于 2016-3-13 14:35


谢谢!批处理命名结果是:七佛父母姓字经--失译

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. cd /d "E:\ABC Book\佛教--cbeta汉文大藏经_epub_201405\"
  3. for /f "tokens=1* delims=-" %%a in (a.txt) do set #%%a=%%b
  4. for /r %%c in (*.epub) do if defined #%%~nc ren "%%c" "!#%%~nc!%%~xc"
  5. pause
复制代码
2

评分人数

TOP

pcl_test 发表于 2016-3-13 21:16

还是:新译大方广佛华严经音义--唐 慧菀述
1

评分人数

    • pcl_test: 对应楼层点回复,少引用PB -4

TOP

本帖最后由 happy886rr 于 2016-3-13 22:28 编辑

回复 1# lxh623
第三方下载地址http://batch-cn.qiniudn.com/tool/ren2.exe
跟正常批处理一样,就是多下载个ren2.exe和批处理一起放在要改的目录。
1

评分人数

    • lxh623: 还是这个成功了!技术 + 1

TOP

回复 8# lxh623


    改下
set "#%%a=%%a--%%b"

TOP

本帖最后由 luotexiaozh 于 2016-3-14 15:45 编辑
  1. for /f %%a in ('dir /b /s E:\ABC Book\佛教--cbeta汉文大藏经_epub_201405\') do (
  2. for /f  "tokens=1,* delims=" %%b  in ('findstr "%%~na"  a.txt ') do (
  3. ren "%%a" "%%b.epub"
  4. )
  5. )
复制代码

TOP

回复 5# lxh623
  1. @echo off
  2. for /f "delims=*" %%i in ('dir /s/b/a-d-h E:\ABC Book\佛教--cbeta汉文大藏经_epub_201405\') do (
  3.       for /f "tokens=1,* delims=--" %%j in (a.txt) do (
  4.          if exist "%%~dpi%%j*.epub" ren "%%~dpi%%j*.epub" "%%j-%%k.epub"
  5.          if exist "%%~dpi%%j*.txt" ren "%%~dpi%%j*.txt" "%%j-%%k.txt"
  6. )
  7. )
  8. pause>nul
复制代码
这样子看看

TOP

返回列表