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

[文件操作] 批处理如何给文件夹内的图片批量命名

比如文件夹名称为AA
文件夹内的图片依次命名为
AA-01.jpg
AA-02.jpg
AA-03.jpg
...


我网上搜的
  1. @echo off
  2. call :loop "%cd%"
  3. for %%a in (*.jpg) do (
  4.    set /a n+=1
  5.    set "str=%%a"
  6.    setlocal enabledelayedexpansion
  7.    ren "!str!" "%var%-!n!%%~xa"
  8.    endlocal
  9. )
  10. pause&exit
  11. :loop
  12. set "var=%~nx1"
复制代码
运行之后发现不是-02而是-2
而且没有-1这张图

请大神指点,在线等,感激不尽!

本帖最后由 qixiaobin0715 于 2021-2-26 16:20 编辑
  1. @echo off
  2. set n=100
  3. setlocal enabledelayedexpansion
  4. for %%i in (*.jpg) do (
  5.     set /a n+=1
  6.     for /d %%a in ("%%~dpi.") do ren "%%i" "%%~na-!n:~1!%%~xi"
  7. )
  8. pause
复制代码

TOP

回复 2# qixiaobin0715


    谢谢,但是运行出来的结果,文件夹好像不是存放图片的文件夹,是最外面的母文件夹

TOP

  1. @Echo off&SetLocal EnableDelayedExpansion&set n=100
  2. for /d %%i in (*)do for /r %%j in (*.bmp,*.jpg,*.gif,*.png)do set /a n+=1&ren "%%j" "%%~ni-!n:~1!%%~xj"
  3. pause
复制代码

TOP

回复 4# smss


    亲,这个运行不成功

TOP

批处理保存为ANSI编码 放入需要处理的文件夹下运行
善用搜索http://www.bathome.net/thread-2873-1-1.html

TOP

本帖最后由 umenoko 于 2021-2-26 16:20 编辑

回复 6# smss


    不好意思啊我是个小白
楼上那位我复制代码进txt,然后后缀改为bat就能运行了。可是运行出来的文件夹名称是最外面那个母文件夹的名称,不知道原因出在哪里

TOP

回复 6# smss


   您给的代码, txt文件是ANSI编码,但是运行不成功

TOP

已修改,多了个点

TOP

回复 9# qixiaobin0715


    谢谢大神修改,但是运行出来的结果没有-01.jpg的图片,从-02.jpg开始的

TOP

我这里测试没问题:

TOP

回复 11# qixiaobin0715

第一次运行↑

再次运行↑

我这边好像需要再次运行他才会出来-01.jpg欸,是我操作有什么问题吗?

TOP

重命名问题经常会出现【名字重复】修改失败,增加检查重名后又会出现【序号跳过】的状况!

原因是:检查了新名字,没有检查原来的名字。

思路:一、计算文件个数,得到序号范围;
   二、新旧文件名都检查,排除已改好的文件名;
   三、修改其他的文件名。
如无特别说明,代码测试环境均为 XP SP3

TOP

回复 13# cutebe
有道理

TOP

回复 8# umenoko
移动重命名:
  1. @echo off
  2. md newfolder
  3. set n=100
  4. setlocal enabledelayedexpansion
  5. for %%i in (*.jpg) do (
  6.     set /a n+=1
  7.     for /d %%a in ("%%~dpi.") do move "%%i" "newfolder\%%~na-!n:~1!%%~xi"
  8. )
  9. pause
复制代码

TOP

返回列表