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

[文本处理] 求助,批处理重命名图片文件名

[复制链接]
发表于 2021-5-15 16:31:34 | 显示全部楼层 |阅读模式
我有一批图片文件,里面是以姓名身份证号码命名,我要修改成只剩余身份证号码,名字去除。(注有jpg、pn……各种格式),谢谢
发表于 2021-5-15 17:52:49 | 显示全部楼层
回复 1# qqnn666


    请给两个真实的例子看看具体格式
发表于 2021-5-15 20:25:09 | 显示全部楼层
  1. @echo off&setlocal enabledelayedexpansion
  2. cd %~dp0

  3. for /f "delims=*" %%i in ('dir /b /ad /s *') do (
  4. setlocal
  5.     pushd %%i
  6.     for /f "delims=*" %%j in ('dir /a-d /b "*.jpg" "*.png" "*.bmp"') do (set f=%%~nj&set f=!f:~-18!
  7.         ren "%%j" "!f!%%~xj"
  8.     )
  9. endlocal
  10. popd
  11. )
  12. pause
复制代码
 楼主| 发表于 2021-5-16 09:20:59 | 显示全部楼层
回复 2# Batcher



    例:张三123456789012345678.jpg改成123456789012345678.jpg
 楼主| 发表于 2021-5-16 09:25:24 | 显示全部楼层
回复 3# xp3000


    谢谢,我复制进入运行后,显示按任意键继续,然后直接退出?图片未做修改。
 楼主| 发表于 2021-5-16 10:09:33 | 显示全部楼层
回复 6# xp3000


    可以了,另想问下,如果一堆文件夹里面(如新建文件夹、1、办公室……等)都有这些文件,也包含有TXT、xls、rar……等非图片文件,能否一起修改,不需要单独进行修改?谢谢!
发表于 2021-5-16 10:17:52 | 显示全部楼层
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in ('dir /b/s/a-d *.jpg *.png') do (
  4. set "str=%%~na"
  5. set "str=!str:~-18!"
  6. ren "%%a" "!str!%%~xa"
  7. )
  8. pause
复制代码

评分

参与人数 2技术 +2 收起 理由
qqnn666 + 1 技术
追梦人 + 1 真的好

查看全部评分

 楼主| 发表于 2021-5-16 11:32:03 | 显示全部楼层
回复 9# qixiaobin0715


    谢谢,不好意思,我没表达清楚,我的意思是,在一个大文件夹里面有很多小文件夹,小文件夹里面有相片也有其它文件(只需要修改相片文件,其它文件不改动),能否把一个大文件夹里面的所有相片(只是相片,其它自动跳过)(含小文件夹里的所有相片)批量修改?

    谢谢
发表于 2021-5-16 21:13:11 | 显示全部楼层
回复 10# qqnn666


    请举例说明9楼代码执行之后具体哪个地方没有达到你描述的需求?
发表于 2021-5-16 21:28:54 | 显示全部楼层
  1. @echo off
  2. for /f "delims=" %%a in ('more +6 "%0"') do (
  3. type nul>%%a
  4. )
  5. pause & exit /b

  6. :需要生成的文件在下面:
  7. 北京市 张三·000000000000000000.jpg
  8. 张三310117197005158411·上海市.png
  9. 张三钦州市 45070119830418326X .jpg.jpg.jpg.jpg
  10. 自贡市·510300197705179628张三.png.png
  11. 张三000000431103197605186731·永州市.jpg
复制代码
我的测试是按照这样生成的,但是代码遇到匹配不到的文件名内容部分会错误,不知道怎么屏蔽错误提示
 楼主| 发表于 2021-5-17 13:39:28 | 显示全部楼层
我的测试是按照这样生成的,但是代码遇到匹配不到的文件名内容部分会错误,不知道怎么屏蔽错误提示
xp3000 发表于 2021-5-16 21:28



    有一个有连字的和身份证号码报错
 楼主| 发表于 2021-5-17 13:39:52 | 显示全部楼层
我的测试是按照这样生成的,但是代码遇到匹配不到的文件名内容部分会错误,不知道怎么屏蔽错误提示
xp3000 发表于 2021-5-16 21:28



    显示连字和身份证号码还在
发表于 2021-5-17 14:29:27 | 显示全部楼层
我那还是删了算了,试水贴,在重复和不存在的捕获不到的身份证号码会有错误提示,虽说不影响效果,但是看着难受
 楼主| 发表于 2021-5-17 14:29:55 | 显示全部楼层
回复 13# xp3000


    请问可以怎么解决吗?
发表于 2021-5-18 09:15:10 | 显示全部楼层
不用match捕获,用replace替换方式可以解决,现在就是平年和闰年的识别了,达到100%身份证命名规则的识别,但是测试时候发生括弧不对称,单独拆开又正确
递归解决倒是可以解决,不是计算出来的闰年,递归有点浪费,解决了计算就单独发
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 18:44 , Processed in 0.033546 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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