当前位置 博文首页 > 用批处理实现将文件以数字重命名的代码

    用批处理实现将文件以数字重命名的代码

    作者:admin 时间:2021-02-19 12:44

    要求:
       1、不能改变a.txt内容的顺序
       2、将当前目录下的所有jpg文件以序号的形式重命名 如:从1-16
       3、如果有16个文件,必须重命名为1-16,不允许出现16之后的序号
    a.txt 内容:
    复制代码 代码如下:

    2.jpg
    1.jpg
    a.jpg
    5ww.jpg
    c.jpg
    f.jpg
    rty.jpg
    3.jpg
    11.jpg
    b.jpg
    6.jpg
    e.jpg
    8.jpg
    111.jpg
    7.jpg
    30.jpg

    a.txt中的内容其实就是当前文件夹下的jpg文件列表。
    要求将当前文件夹里的所有jpg文件以序号的形式重命名。
    但只能从 a.txt 获取当前文件夹里的所有 jpg 的文件名。
    以序号重命名文件,陷阱重重,但如果用dir或for等命令来获取文件名的话,获取的先后次序会有一定规律,导致有些问题不能体现出来
    复制代码 代码如下:

    @echo on
    setlocal enabledelayedexpansion
    set n=0
    set n1=0
    for /f "tokens=*" %%a in (a.txt) do (
         set /a n+=1
         ren %%a t!n!.jpg
        )
    :loop
    set /a n1+=1  
    ren t%n1%.jpg %n1%.jpg&&goto :loop
    exit

    第二种方法
    好像可以更简单点
    复制代码 代码如下:

    @echo off
    ren *.jpg t*.jpg
    setlocal enabledelayedexpansion
    for /f "delims=" %%a in ('dir/b "t*.jpg"') do (
       set str=%%a&set str=!str:~1!
       ren "%%a" "!str!"
    )
    pause
    js
    下一篇:没有了