Board logo

标题: [其他] 批处理怎样批量重命名文件(从TXT中读文件名)? [打印本页]

作者: skull    时间: 2010-10-12 20:41     标题: 批处理怎样批量重命名文件(从TXT中读文件名)?

文件重命名问题:
就是有两组图片,
1.txt里面是第一组图片的名字列表,
2.txt里面是第二组图片名字的列表,
目的就是把第二组图片根据第一组图片来重命名,对应关系是行数……
操作的就是第二组文件的名字,也就是2.txt里面的列表。
TXT文件只是图片的名字列表,不操作它们……
比如有1.txt,内容如下,
4dbba3e072a2c69717c23282e7cb1800.jpg
4183d74a3c9115e522322f4c8854a2da.jpg
b484e5d02a6581c2ec87d69ad54afaab.jpg
每行一个且无空行,
另有一个2.txt,内容与上面的大同小异,(名字不一样),但是有空行。
如何实现从2.txt读文件文件名并重命名为1.txt中对应行,
这里主要解决的是空行问题……
或者哥哥们拿别的程序或者脚本给我实现下,纠结了好几天了……

示例:

当前文件夹有N个图片,名字保存在B.TXT中。

A.txt,内容如下
第一行:111.jpg
第二行:222.jpg
第三行:333.jpg

B.txt,内容如下
第一行:555.jpg
第二行:
第三行:666.jpg
第四行:777.jpg

需要程序运行后,当前文件夹的555.jpg名字改为111.jpg,而666.jpg则改名为333.jpg。
操作的是当前目录的图片的名字……
作者: cjiabing    时间: 2010-10-12 22:25

看看其他高手帮你搞吧,他们喜欢搞文本类的东东!~
作者: qq506657335    时间: 2010-10-12 22:34

在QQ问问看到楼主的帖子。。。在这里又看到楼主的帖子。。
找个时间帮楼主写下代码。。。。
作者: 随风    时间: 2010-10-12 22:41

你的 b.txt 中的空行是纯空行,还是有可能含有空格?
作者: 随风    时间: 2010-10-12 22:48

测试显示正确,去掉代码中的 echo 即可
文件名中不能含有半角! 号
:
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in (a.txt) do (
  3.    set /a n+=1
  4.    set .!N!=%%a
  5. )
  6. for /f "tokens=* delims=  " %%a in (b.txt) do (
  7.    if not "%%a"=="" (
  8.       set /a i+=1
  9.       for %%b in (!i!) do echo "%%a" "!.%%b!"
  10.    )
  11. )
  12. pause
复制代码

作者: skull    时间: 2010-10-13 10:08

%%a in (b.txt) 哥哥这里不对吧?
而且这个是改当前目录的JPG图片的名字的……
作者: Batcher    时间: 2010-10-13 12:54     标题: 回复 6楼 的帖子

为什么那里不对啊?




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2