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

[文件操作] 请教老师们,批量改名的BAT如何实现?

D盘AAA目录下有N个文件,如,原文件名为:john.txt ,TXT文本中整理好的新名称1-001-john.txt,新文件名是包含原文件名的,
新名称已经整理好TXT文本格式,如何通过BAT处理,使AAA目录下的所有文件自动改成txt文本中定义的新文件名?
或者这份新文件名不用单独的TXT存放新文件名,直接写到BAT中。
请老师们赐教,谢谢。

本帖最后由 77七 于 2023-3-12 00:40 编辑
  1. @echo off
  2. cd /d "D:\AAA\"
  3. for /f "delims=" %%i in ('dir /b /a-d ') do (
  4.         for /f "delims=" %%a in ('type "%~f0" ^| find "%%~nxi"') do (
  5.                 echo ren "%%i" "%%a"
  6.                 ren "%%i" "%%a"
  7.         )
  8. )
  9. pause
  10. exit
  11. :以下存放新名
  12. 1-001-john.txt
复制代码
bat小白,请多指教!谢谢!

TOP

运行完美,感谢老师

TOP

回复 3# image1001


    如果新文件名都是在老文件名的基础上按照指定规律得来的,那么你不必手工准备那个新文件名列表,可以全部交给BAT代码一步到位。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

是的,都是在老文件名上有规律的,直接用上面的代码将文件名写入BAT就完美解决了。

TOP

回复 2# 77七
大佬,如果不是txt文件该改什么地方呀

TOP

回复 6# 小白唐唐


    没有限制为txt文件,txt文件只是顶楼举的例子

除了文件夹外的任意带扩展名的文件都可以(不和代码冲突就好,比如一个文件没有扩展名 名为 "for" 就和代码冲突了)
bat小白,请多指教!谢谢!

TOP

回复 2# 77七

大佬,我试了下,怎么用不了

TOP

回复 8# 小白唐唐
    @echo off
cd /d "D:\123\"
for /f "delims=" %%i in ('dir /b /a-d /o:d') do (
        for /f "delims=" %%a in ('type "%~f0" ^| find "%%~nxi"') do (
                echo ren "%%i" "%%a"
                ren "%%i" "%%a"
        )
)
pause
exit:
121231.txt

我只添加了个时间顺序,感觉ren "%%i" "%%a"有点多余,但是就是运行不来

TOP

回复 9# 小白唐唐


    不是多余,是多了

TOP

回复 10# 小白唐唐


    但是只是我个人感觉

TOP

回复 8# 小白唐唐
检查你的文件名中是否含有121231
还有你这样会有文件重复的可能

TOP

回复 12# terse


   没有的,我找了21个pdf文件试了试

TOP

回复 13# 小白唐唐


    @echo off
cd /d "D:\123\"
for /f "delims=" %%i in ('dir /b /a-d/o:d ') do (
        for /f "delims=" %%a in ('type "%~f0" ^| find "%%~nxi"') do (
                echo ren "%%i" "%%a"
                ren "%%i" "%%a"
        )
)
pause
exit

11.pdf
12.pdf
13.pdf
14.pdf
15.pdf
16.pdf
17.pdf
18.pdf
19.pdf
20.pdf
21.pdf
22.pdf
23.pdf
24.pdf
25.pdf
26.pdf
27.pdf
28.pdf
29.pdf
30.pdf
31.pdf
32.pdf
33.pdf
34.pdf
35.pdf
36.pdf
37.pdf
38.pdf

TOP

回复 14# 小白唐唐


   实际文件名呢?如果是单纯的测试验证代码,尽量保证新旧名称11对应吧,不要存在交叉、命名后重复什么的,看到你罗列的11.pdf 21.pdf ,两者只有 第一位数字是不同的,原来的文件名只能是11.p  21.pd之类的了,有点不符合实际。如果是实际需求,可以另开贴询问,感觉你和楼主的需求有点出入。
bat小白,请多指教!谢谢!

TOP

返回列表