【问题标题】:Renaming files within sub directories重命名子目录中的文件
【发布时间】:2013-06-12 07:29:05
【问题描述】:

谁能帮我写代码.... 我有一个名为“book”的主文件夹,里面有 500 个子文件夹,如下所示

book/page1/Image/image 2.jpg
book/page2/Image/image 2.jpg
book/page3/Image/image 2.jpg
book/page4/Image/image 2.jpg
book/page5/Image/image 2.jpg
.
.
.

我希望将图像重命名为:

book/page1/Image/1.jpg
book/page2/Image/2.jpg
book/page3/Image/3.jpg
book/page4/Image/4.jpg
book/page5/Image/5.jpg
.
.
.

请帮忙

【问题讨论】:

    标签: batch-file adsutil.vbs


    【解决方案1】:

    把它放在 book 文件夹中的一个 bat 文件中。 当然,在尝试这样的操作之前,您应该复制整个图书文件夹。

    @echo off
    for /f "delims=page" %%a in ('DIR /ad /b') do rename "page%%a\Image\Image2.jpg" "%%a.jpg"
    

    【讨论】:

      【解决方案2】:
      @ECHO OFF
      SETLOCAL
      FOR /f "tokens=1*delims=[]" %%i IN (
       'dir /s /b /a-d "u:\book\image 2.jpg"^|find /n /v ""'
      ) DO ECHO REN "%%j" image%%i.jpg
      

      这应该报告所需的重命名。

      从最后一行删除 ECHO 关键字以实际执行重命名 - 检查后。

      【讨论】:

        【解决方案3】:

        下面的批处理文件将文件重命名为文件夹名称,删除了page 部分:

        @echo off
        setlocal EnableDelayedExpansion
        
        cd \book
        for /D %%a in (*) do (
           set folder=%%a
           ren "%%a\Image\image 2.jpg" "!folder:page=!.jpg"
        )
        

        下面的批处理文件将文件重命名为连续的两位数,而不考虑文件夹名称:

        @echo off
        setlocal EnableDelayedExpansion
        
        cd \book
        set number=100
        for /D %%a in (*) do (
           set /A number+=1
           ren "%%a\Image\image 2.jpg" "!number:~1!.jpg"
        )
        

        如果您希望数字只有一位,请将数字分配更改为:set number=10

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-09-19
          • 2018-07-07
          • 2018-08-29
          • 2015-10-26
          • 2018-12-07
          • 2021-06-09
          相关资源
          最近更新 更多