【问题标题】:windows batch script to duplicate files in an image sequencewindows批处理脚本复制图像序列中的文件
【发布时间】:2015-06-01 14:01:47
【问题描述】:

我正在寻找在 Windows 中创建批量重命名脚本的帮助

我有一个图片文件夹,按 3 顺序编号,即。

  • test_01.001.tif
  • test_01.004.tif
  • test_01.007.tif

等等

我的目标是复制并重命名每张两次,以便在其后弥补缺失的图像,以组成完整的图像序列,以便

test_01.001.tif 被复制两次,这些副本重命名为:

test_01.002.tiftest_01.003.tif

图像序列的其余部分以此类推(最多 200 个)

非常感谢任何帮助,谢谢!

【问题讨论】:

    标签: image batch-file sequence rename


    【解决方案1】:

    可能是另一种非常量身定制的方法:

    @echo off
    setlocal enabledelayedexpansion    
    set iter=1
    set count=1
    
    for %%i in (C:\TEST\*.tif) do (
    set name=%%~dpni
    pause     
        if %count%==%iter% (
            if !count! lss 10 (
            set /a count+=1
            copy "%%i" "!name:~0,-1!!count!%%~xi"
            set /a count+=1
            copy "%%i" "!name:~0,-1!!count!%%~xi"
            set /a count+=1
            )
            if !count! geq 10 if !count! lss 100 (
            set /a count+=1
            copy "%%i" "!name:~0,-2!!count!%%~xi"
            set /a count+=1
            copy "%%i" "!name:~0,-2!!count!%%~xi"
            set /a count+=1
            )
            if !count! geq 100 if !count! lss 1000 (
            set /a count+=1
            copy "%%i" "!name:~0,-3!!count!%%~xi"
            set /a count+=1
            copy "%%i" "!name:~0,-3!!count!%%~xi"
            set /a count+=1
            )
    
        ) else (
        set /a iter+=1
        )
    )
    pause
    

    TESTpath 更改为与您的*.tif 文件相关的路径。

    【讨论】:

      【解决方案2】:

      试试这个:

      @echo off
      setlocal EnableDelayedExpansion
      
      for /F "tokens=1-3 delims=." %%a in ('dir /B /A-D *.*.tif') do (
         set /A new1=1%%b+1, new2=new1+1
         copy "%%a.%%b.%%c" "%%a.!new1:~1!.%%c"
         copy "%%a.%%b.%%c" "%%a.!new2:~1!.%%c"
      )
      

      【讨论】:

        【解决方案3】:
        @ECHO OFF
        SETLOCAL ENABLEDELAYEDEXPANSION
        SET "sourcedir=U:\sourcedir"
        SET "basename=test_01."
        FOR /l %%a IN (1001,3,1997) DO (
         SET /a filename=%%a
         IF EXIST "%sourcedir%\%basename%!filename:~-3!.tif" (
          SET /a new1=1+%%a
          SET /a new2=2+%%a
          ECHO(COPY /b "%sourcedir%\%basename%!filename:~-3!.tif" "%sourcedir%\%basename%!new1:~-3!.tif"
          ECHO(COPY /b "%sourcedir%\%basename%!filename:~-3!.tif" "%sourcedir%\%basename%!new2:~-3!.tif"
         ) else GOTO :EOF 
        )
        GOTO :EOF
        

        您需要更改sourcedir 的设置以适应您的情况。

        所需的 COPY 命令仅用于测试目的ECHOed。 验证命令正确后,将ECHO(COPY 更改为COPY 以实际复制文件。附加>nul 以禁止报告消息(例如1 file copied

        进程从 1001 到 1997 以 3 的步长变化 %%a。如果找不到具有 %%a 的最后 3 位 的键名称部分的文件,则终止,否则添加 1和 2 到 %% 提供两个所需的新文件并使用相同的子字符串技术进行复制。

        【讨论】:

          【解决方案4】:

          未测试

          @echo off
          pushd "C:\the_folder_with_the_images"
          
          setlocal enableDelayedExpansion
          for /l %%l in (1 ; 3 ; 201) do (
             set current_number=%%l
             set next_number=%%l+1
             set next_next_number=%%l+2
             if %%l lss 100 (
               set current_number=0%%l
             )
             if %%l lss 10 (
               set current_number=0%%l
             ) 
          
             if !next_number! lss 100 (
               set next_number=0%%l
             )
             if !next_number! lss 10 (
               set next_number=0%%l
             )
          
             if !next_next_number! lss 100 (
               set next_next_number=0%%l
             )
             if !next_next_number! lss 10 (
               set next_next_number=0%%l
             ) 
             copy test_01.!current_number!.tif test_01.!next_number!.tif
             copy test_01.!current_number!.tif test_01.!next_next_number!.tif
          )
          
          endlocal
          

          【讨论】:

          • 不错的方法...pushdfor /l 可能是最好的方法。 :D
          猜你喜欢
          • 2020-04-08
          • 1970-01-01
          • 2019-06-01
          • 1970-01-01
          • 2011-10-04
          • 1970-01-01
          • 1970-01-01
          • 2013-03-01
          • 1970-01-01
          相关资源
          最近更新 更多