Batch Scripting Moving files with timestamp

前端 未结 3 635
北海茫月
北海茫月 2021-01-17 01:40

So basically I have a file system C:\\Test\\BaseLine. Under BaseLine folder I have many folders, it could be one folder or 15 folders, in those folders are image files. I wa

3条回答
  •  醉话见心
    2021-01-17 02:09

    This works -

    @echo off
    for /f "skip=1 delims=." %%i in ('wmic OS Get localdatetime') do set ts=%%i
    set dt=%ts:~6,2%-%ts:~4,2%-%ts:~0,4%
    
    set workdir=D:\test\baseline\
    set newdir=D:\test\Achieve\
    
    cd %workdir%
    
    for /f "delims=" %%i in ('dir /b /s *.jpg') do call :search "%%i"
    goto :eof
    
    :search
    set filepath=%~f1
    set dirpath=%~dp1
    set filename=%~n1
    set fileextn=%~x1
    if "%dirpath%" EQU "%workdir%" goto :eof
    copy /y "%filepath%" %newdir%\%filename%_%dt%%fileextn% >nul 2>&1
    
    :eof
    

    Test output -

    D:\>dir "d:\test\baseline", "d:\test\baseline\Folder 123", "d:\test\baseline\Folder 321"
     Volume in drive D is New Volume
     Volume Serial Number is B04C-AB59
    
     Directory of d:\test\baseline
    
    23/07/2014  21:24              .
    23/07/2014  21:24              ..
    23/07/2014  20:35                 2 1.jpg
    23/07/2014  20:35                 2 2.jpg
    23/07/2014  20:36              Folder 123
    23/07/2014  20:37              Folder 321
                   2 File(s)              4 bytes
    
     Directory of d:\test\baseline\Folder 123
    
    23/07/2014  20:36              .
    23/07/2014  20:36              ..
    23/07/2014  20:36                 2 3.jpg
    23/07/2014  20:36                 2 4.jpg
                   2 File(s)              4 bytes
    
     Directory of d:\test\baseline\Folder 321
    
    23/07/2014  20:37              .
    23/07/2014  20:37              ..
    23/07/2014  20:37                 2 5.jpg
    23/07/2014  20:37                 2 6.jpg
                   2 File(s)              4 bytes
                   2 Dir(s)   7,037,329,408 bytes free
    
    D:\>draft.bat
    
    D:\test\baseline>cd\
    
    D:\>dir d:\test\Achieve
     Volume in drive D is New Volume
     Volume Serial Number is B04C-AB59
    
     Directory of d:\test\Achieve
    
    23/07/2014  21:24              .
    23/07/2014  21:24              ..
    23/07/2014  20:36                 2 3_23-07-2014.jpg
    23/07/2014  20:36                 2 4_23-07-2014.jpg
    23/07/2014  20:37                 2 5_23-07-2014.jpg
    23/07/2014  20:37                 2 6_23-07-2014.jpg
                   4 File(s)              8 bytes
                   2 Dir(s)   7,037,329,408 bytes free
    

    Cheers, G

    EDIT - This works based on your original question. I haven't seen the comments on the other answer yet. Let me know if you need changes.

提交回复
热议问题