Batchfile to create backup and rename with timestamp

后端 未结 5 848
爱一瞬间的悲伤
爱一瞬间的悲伤 2021-01-31 20:35

I have the following network path to copy the file to an archive folder. It copies File 1 from Folder to Archive but I would like to add t

相关标签:
5条回答
  • 2021-01-31 21:09

    Renames all .pdf files based on current system date. For example a file named Gross Profit.pdf is renamed to Gross Profit 2014-07-31.pdf. If you run it tomorrow, it will rename it to Gross Profit 2014-08-01.pdf.

    You could replace the ? with the report name Gross Profit, but it will only rename the one report. The ? renames everything in the Conduit folder. The reason there are so many ?, is that some .pdfs have long names. If you just put 12 ?s, then any name longer than 12 characters will be clipped off at the 13th character. Try it with 1 ?, then try it with many ?s. The ? length should be a little longer or as long as the longest report name.

    @ECHO OFF
    SET NETWORKSOURCE=\\flcorpfile\shared\"SHORE Reports"\2014\Conduit
    REN %NETWORKSOURCE%\*.pdf "????????????????????????????????????????????????? %date:~-4,4%-%date:~-10,2%-%date:~7,2%.pdf"
    
    0 讨论(0)
  • 2021-01-31 21:10

    See if this is what you want to do:

    @echo off
    for /f "delims=" %%a in ('wmic OS Get localdatetime  ^| find "."') do set dt=%%a
    set YYYY=%dt:~0,4%
    set MM=%dt:~4,2%
    set DD=%dt:~6,2%
    set HH=%dt:~8,2%
    set Min=%dt:~10,2%
    set Sec=%dt:~12,2%
    
    set stamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%
    
    copy "F:\Folder\File 1.xlsx" "F:\Folder\Archive\File 1 - %stamp%.xlsx"
    
    0 讨论(0)
  • 2021-01-31 21:18

    I've modified Foxidrive's answer to copy entire folders and all their contents. this script will create a folder and backup another folder's contents into it, including any subfolders underneath.

    If you put this in say an hourly scheduled task you need to be careful as you could fill up your drive quickly with copies of your original folder. Before bitbucket etc i was using as similar script to save my code offline.

    @echo off
    for /f "delims=" %%a in ('wmic OS Get localdatetime  ^| find "."') do set dt=%%a
    set YYYY=%dt:~0,4%
    set MM=%dt:~4,2%
    set DD=%dt:~6,2%
    set HH=%dt:~8,2%
    set Min=%dt:~10,2%
    set Sec=%dt:~12,2%
    
    set stamp=YourPrefixHere_%YYYY%%MM%%DD%@%HH%%Min%
    rem you could for example want to create a folder in Gdrive and save backup there
    cd C:\YourGoogleDriveFolder
    mkdir %stamp%
    cd %stamp%
    
     xcopy C:\FolderWithDataToBackup\*.* /s 
    
    0 讨论(0)
  • 2021-01-31 21:20

    Yes, to make it run in the background create a shortcut to the batch file and go into the properties. I'm on a Linux machine ATM but I believe the option you are wanting is in the advanced tab.

    You can also run your batch script through a vbs script like this:

    'HideBat.vbs
    CreateObject("Wscript.Shell").Run "your_batch_file.bat", 0, True
    

    This will execute your batch file with no cmd window shown.

    0 讨论(0)
  • 2021-01-31 21:31

    try this:

    ren "File 1-1" "File 1 - %date:/=-% %time::=-%"
    
    0 讨论(0)
提交回复
热议问题