标题: [文本处理] BAT如何按要求批量重命名文件? [打印本页]
作者: ruoru376 时间: 2015-10-10 15:28 标题: BAT如何按要求批量重命名文件?
目录下有一子文件夹“文章”。里面有很多文件。需要对其批量改名,要求是在文件名最后(后缀名前)添加一个关键字。
比如:
关键词文件为:关键词.txt
关键词1
关键词2
关键词3
…………
关键词n
————————————————————
需改名 原文件名为:
A文章标题.txt
B文章标题.txt
C文章标题.txt
D文章标题.txt
…………
N文章标题.txt
改名后 新文件名为:
A文章标题【关键词1】.txt
B文章标题【关键词5】.txt
C文章标题【关键词3】.txt
…………
N文章标题【关键词n】.txt
————————
需改名 原文件有很多个,随机抽取"关键词.txt"里面的词或者循环使用,对文件进行改名,。希望大侠帮帮忙,谢谢了。
作者: flyinnet9 时间: 2015-10-10 16:56
本帖最后由 flyinnet9 于 2015-10-10 17:05 编辑
假设目录结构是这样的
一级目录
|
|___<文章>
|___bat
|___关键字.txt- @echo off
- setlocal enabledelayedexpansion
- ::设置关键字数量
- set num=50
-
- for %%a in (文章\*.txt) do (
- set /a mod=!random!%%!num!
- for /f %%b in ('more +!mod! 关键字.txt') do if not defined str set str=%%b
- ren "%%a" "%%~na_!str!.txt"
- set str=
- )
复制代码
作者: ruoru376 时间: 2015-10-10 17:30
回复 2# flyinnet9
效果不错。
不知道这个:关键词数量
set num=6
能不能自动获取呢!有多少词就是多少。不用指定……
——————
非常感谢 有时间!再研究研究吧!
作者: DAIC 时间: 2015-10-10 20:53
回复 3# ruoru376 - @echo off
- setlocal enabledelayedexpansion
- ::获取关键字数量
- for /f %%a in ('type 关键字.txt^|find /c /v ""') do (
- set "num=%%a"
- )
-
- for %%a in (文章\*.txt) do (
- set /a mod=!random!%%!num!
- for /f %%b in ('more +!mod! 关键字.txt') do if not defined str set str=%%b
- ren "%%a" "%%~na_!str!.txt"
- set str=
- )
复制代码
作者: ruoru376 时间: 2015-10-10 22:31
回复 4# DAIC
谢谢!bat 效率还真慢啊!
作者: DAIC 时间: 2015-10-11 21:44
回复 5# ruoru376
总共多少个文件需要处理?
现在的代码需要多长时间处理完?
你希望多长时间处理完?
作者: ruoru376 时间: 2015-10-20 17:22
回复 ruoru376
总共多少个文件需要处理?
现在的代码需要多长时间处理完?
你希望多长时间处理完? ...
DAIC 发表于 2015-10-11 21:44
不好意思,这些天有些忙!没有来到论坛!
非常感谢!
2万个文件 耗费了 十多分钟啊!效率很低吧! 最好是1-3分钟就能处理完成就好了
作者: DAIC 时间: 2015-10-21 14:29
回复 7# ruoru376
试试这样需要几分钟- @echo off
- setlocal enabledelayedexpansion
- set fileNum=0
- set keyNum=0
-
- REM 获取关键词数量
- for /f "delims=" %%i in ('type "关键词.txt"') do (
- set /a keyNum+=1
- set "_!keyNum!=%%i"
- )
-
- REM 重命名
- for %%i in (文章\*.txt) do (
- set /a fileNum+=1
- set /a mod=!fileNum!%%!keyNum!
- if !mod! equ 0 (
- set mod=3
- )
- for /f %%j in ("_!mod!") do (
- ren "%%i" "%%~ni【!%%j!】%%~xi"
- )
- )
复制代码
作者: ruoru376 时间: 2015-10-21 16:28
回复 8# DAIC
这个真的不错,效率是原来的4倍左右,谢谢了!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |