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

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

[复制链接]
发表于 2023-3-19 03:38:48 | 显示全部楼层
回复 45# image1001


   要怎么改呢?举个例子吧
 楼主| 发表于 2023-3-19 19:16:21 | 显示全部楼层
比如,1-001-aaa.txt,1-002-bbb.txt,1-003-ccc.txt,有N个这样有规律的文件,批量改名为指定的新文件名,新文件名还是按原来的方法整理在BAT结尾处。
比如新文件名为:1-aaa.txt,2-bbb.txt,3-ccc.txt,也就是说,旧文件名去区配时,能指定从X个字符开始去匹配,符合条件的就改。
发表于 2023-3-19 20:13:44 | 显示全部楼层
本帖最后由 77七 于 2023-3-19 20:20 编辑

回复 47# image1001


  1. @echo off
  2. rem 匹配文件名包含扩展名 后7位,即后7位如包含在新名中就执行改名
  3. rem 注意  xxxxxx.xxx  的后7位 为  xxx.xxx
  4. rem 使用前先测试
  5. setlocal enabledelayedexpansion
  6. set n=7
  7. cd /d "D:\AAA"
  8. for /f "delims=" %%i in ('dir /b /a-d ') do (
  9.         set "str=%%~nxi"
  10.         set "str=!str:~-%n%!"
  11.         set m=
  12.         for /f "delims=" %%a in ('type "%~f0" ^| find "!str!"') do (
  13.                 if not defined m (
  14.                         echo ren "%%i" "%%a"
  15.                         ren "%%i" "%%a"
  16.                         set m=1
  17.                 )
  18.         )
  19. )
  20. endlocal
  21. pause
  22. exit
  23. :以下存放新名
  24. 1-001-john.txt
复制代码
 楼主| 发表于 2023-3-19 21:29:42 | 显示全部楼层
现在举例的是AAA,BBB,CCC,这都是3位的,如果有的是3位,有的是4位,有的是5位呢?比如1-001-AAA.txt,1-002-BBBB.txt,1-003-cccc.txt,1-004-ddddd.txt这样的,他们的共同点就是左边都是固定的长度
发表于 2023-3-19 21:51:49 | 显示全部楼层
回复 49# image1001


   http://www.bathome.net/thread-996-1-1.html
参考下这个教程, 修改第10行
例如
set a=!a:~0,n!
舍弃0位,保留n位
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 02:26 , Processed in 0.016233 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表