Board logo

标题: [文件操作] 批处理怎样把图片名称重命名为文本里对应的名称? [打印本页]

作者: 13934293070    时间: 2020-7-12 15:23     标题: 批处理怎样把图片名称重命名为文本里对应的名称?

请教大家一个问题,怎样把图片名称改为txt文本里对应的名称,重命名相同的名称后加“-”加3位的序列号
比如:图片名称                                        文本名称                   改好的名称
          IMG_20200709_165907.jpg          130005                    130005-001.jpg
         IMG_20200709_165940.jpg           030949                    030949.jpg
         IMG_20200709_165953.jpg           130005                    130005-002.jpg
         IMG_20200709_170008.jpg           02354878                02354878.jpg
作者: smss    时间: 2020-7-14 12:05

  1. ::aaa.txt为你定义的命名文本
  2. @echo off&setlocal enabledelayedexpansion&set m=1000
  3. (for /f "delims=" %%i in ('dir/b/s *jpg')do set/a m+=1&set/p "n="&if defined n ren "%%i" "!n!-!m:~-3!%%~xi")<aaa.txt
  4. pause
复制代码

作者: Batcher    时间: 2020-7-14 13:27

回复 2# smss


    你这个的代码里面只有一个 if + ren 连个 else 都没有,能否讲解一下它是如何实现顶楼要求的两种情况分别重命名的吗?
作者: Batcher    时间: 2020-7-14 13:48

回复 1# 13934293070


test.bat
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "FileTxt=1.txt"
  4. for /f "delims=" %%i in ('type "%FileTxt%"') do (
  5.     set /a _%%i+=1
  6.     set #%%i=1001
  7. )
  8. (for /f "delims=" %%i in ('dir /b /a-d *.jpg') do (
  9.     set /p "NewName="
  10.     for /f %%j in ("_!NewName!") do (
  11.         if !%%j! gtr 1 (
  12.             call ren "%%i" "!NewName!-%%#!NewName!:~-3%%%%~xi"
  13.             set /a #!NewName!+=1
  14.         ) else (
  15.             ren "%%i" "!NewName!%%~xi"
  16.         )
  17.     )
  18. ))<"%FileTxt%"
复制代码

作者: 13934293070    时间: 2020-7-16 06:58

本帖最后由 13934293070 于 2020-7-16 07:35 编辑

谢谢,管理员的帮助解决了问题,也谢谢sass的帮助,虽然没能解决这个问题:)




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