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

[其他] 批处理怎样批量重命名文件(从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。
操作的是当前目录的图片的名字……

看看其他高手帮你搞吧,他们喜欢搞文本类的东东!~

TOP

在QQ问问看到楼主的帖子。。。在这里又看到楼主的帖子。。
找个时间帮楼主写下代码。。。。

TOP

你的 b.txt 中的空行是纯空行,还是有可能含有空格?
技术问题请到论坛发帖求助!

TOP

测试显示正确,去掉代码中的 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
复制代码
技术问题请到论坛发帖求助!

TOP

%%a in (b.txt) 哥哥这里不对吧?
而且这个是改当前目录的JPG图片的名字的……

TOP

回复 6楼 的帖子

为什么那里不对啊?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表