• 0

batch file to move-compress-delet3 files


Question

Hello,

I am trying to write a batch script that will run automatically daily to do the following.

1. Move files older than 2 days to from the main directory(Jason) to archive directory.

2. Zip files in the archive directory that are older than 1 week and delete files from this directory

that are older than 6 months.

3. I want to run this script from a different directory(not the directory that has the files).

I wrote the following script but its not correctly working. Can you please help.

REM move files older than 2 days to a archive directory

robocopy D:\Agentrics\integration\incoming\Jason D:\Agentrics\integration\incoming\Jason\archive /MOV

/MINAGE:2

Question: How can i change the command below to zip files older than 1 week. Also i want to put this

command in a batch file that will run from a different location? Is it possible that the zipped files

can have the same creation date and time as the original files?

REM zip all files in the backup directory

FOR %%A IN (*.TXT*, *.cpi*) DO "C:\Program Files\WinRAR\WinRAR.exe" a -r "%%~nA.zip" "%%A"

FOR %%A IN (*.TXT,*.cpi) DO DEL "D:\Agentrics\integration\incoming\Jason\archive\.cpi*" "%%A"

REM Delete all files in the backup directory that are older than 6 months

forfiles /p D:\Agentrics\integration\incoming\Jason\archive /s /m *.* /d -500 /c "cmd /c del /q @path"

Kind Regards,

Jason

9 answers to this question

Recommended Posts

  • 0

How can i change this script so that it only compresses the files that are older than 7 days.

FOR %%A IN (D:\Agentrics\integration\incoming\Mansoor\backup\*.txt*, D:\Agentrics\integration\incoming\Mansoor\backup\*.cpi*) DO "C:\Program Files\WinRAR\WinRAR.exe" a -r D:\Agentrics\integration\incoming\Mansoor\backup\"%%~nA.zip" "%%A"

FOR %%A IN (D:\Agentrics\integration\incoming\Mansoor\backup\*.TXT,D:\Agentrics\integration\incoming\Mansoor\backup\*.cpi) DO DEL "D:\Agentrics\integration\incoming\Mansoor\backup\.cpi*" "%%A"

Regards,

Jason

  • 0

Although its not exactly what you're looking for, this article describes the creation a DIY backup system. Since it discusses many of the issues and their possible solutions in-depth, it might help. Good luck.

  • 0

You could let RAR handle that using -to7d (meaning exactly what you want - time older than 7 days) switch. If no file(s) being processed qualify, no archive is created (and exit code 10 is returned, should you want to debug with %errorlevel%).

As for the whole backup system - surely there must be a better way.

  • 0

Thank you guys for your help. Howerver I have a question for Phouchg. You said that i can use the -to7d option in my command. I tried this option but getting errors. Can you please take a look at the command below, i added -to7d in this command.

FOR %%A IN (D:\Agentrics\integration\incoming\Mansoor\backup\*.txt*, D:\Agentrics\integration\incoming\Mansoor\backup\*.cpi*) DO -to7d "C:\Program Files\WinRAR\WinRAR.exe" a -r D:\Agentrics\integration\incoming\Mansoor\backup\"%%~nA.zip" "%%A"

kind Regards,

Jason

  • 0

looks like to me, you should include the a and -r functions in quotes too...so it would be "C:\Program Files\WinRAR\Winrar.exe a -r"....but I could be wrong....I'm a little rusty.

  • 0

It's a switch for WinRAR, not for CMD ;)

FOR %%A IN (D:\Agentrics\integration\incoming\Mansoor\backup\*.txt*, D:\Agentrics\integration\incoming\Mansoor\backup\*.cpi*) DO "C:\Program Files\WinRAR\WinRAR.exe" a -r -to7d D:\Agentrics\integration\incoming\Mansoor\backup\"%%~nA.zip" "%%A"

See WinRAR.chm help file in your C:\Program Files\WinRAR\ folder. Command line syntax is explained in detail. There's overwhelming amount of stuff, mostly useful.

Though I don't think either CMD or RAR can change creation time to an arbitrary value (-tl switch preserves modification time only). Powershell might.

  • 0

Thanks phouch for sharing your knowledge. I looked at WinRAR.chm help and it really helped. Also I added -to7d and worked just fine.I have one more question. Is it possible to create the zip files with the same file creation date as the origininal files (non-zipped files)? I want to delete the zipped files that are older than 6 months from the archieve directory but after those files are zipped they show the current date and time. For example if i zip a file that was created 6 months ago i want the zipped file creation date date also be six months? Is it possible to do that?

Regards,

Jason

  • 0

Thanks phouch for sharing your knowledge. I looked at WinRAR.chm help and it really helped. Also I added -to7d and worked just fine.I have one more question. Is it possible to create the zip files with the same file creation date as the origininal files (non-zipped files)? I want to delete the zipped files that are older than 6 months from the archieve directory but after those files are zipped they show the current date and time. For example if i zip a file that was created 6 months ago i want the zipped file creation date date also be six months? Is it possible to do that?

Regards,

Jason

1. Surely you should be deleting the files before compressing them - why go to the effort of compressing them just to delete them?

2. You can alter file creation dates - it's a bit messy and not-advised, especially on compressed files (zip,rar,etc) as it may cause corruption.

3. You could always create the compressed file with the original date in the filename (myfile01.txt -> 20120328_myfile01.rar).

  • 0

Here is my script. Can someone answer my two questions please?

I have a batch script that does the following @ECHO OFF

REM move files older than 2 days from the incoming directory to the incoming archive directory robocopy D:\Agentrics\integration\download D:\Agentrics\integration\download\archive /MOV /MINAGE:2

REM Zip files in the Archieve directory that are older than one week FOR %%A IN (D:\Agentrics\integration\download\archive*.txt*, D:\Agentrics\integration\download\archive*.cpi*) DO "C:\Program Files\WinRAR\WinRAR.exe" a -r -to7d D:\Agentrics\integration\download\archive\"%%~nA.zip" "%%A"

REM Delete Original files after they are zipped forfiles /p D:\Agentrics\integration\download\archive /s /m .txt /d -7 /c "cmd /c del /q @path" forfiles /p D:\Agentrics\integration\download\archive /s /m .cpi /d -7 /c "cmd /c del /q @path"

REM Delete files that are older than 6 months from the archive directory forfiles /p D:\Agentrics\integration\download\archive /s /m .zip /d -180 /c "cmd /c del /q @path" pause

Question 1: When i run the script i get WinRAR diagnostic messages for some files. For example if there are files in the incoming directory that are not older than two days i get this message."WinRAR Diagnostic messages: No File To Add". Because of this message the scripts stops until i click on the close button of the dialogue box. I am using the free version of WinRAR and its not expired

Question 2: I have two seprate command in the script above. One is for zipping the files older than a week and the other one is deleting the original files after they are zipped. How can i link those two commands so that if some reason the files did not get zipped they should also not get deleted. Or is is there a command to break the script if the files did not get zipped? I just want to zipp the files first and then delete the original ones.

Thanks,

Jason

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Microsoft confirms Recycle Bin bug across all versions of Windows by Usama Jawad A couple of days ago, we reported that the latest Patch Tuesday update has seemingly resulted in a lot of issues for many users, including OneDrive and Dropbox access problems, BitLocker recovery lockouts, and BSODs. Although Microsoft is yet to acknowledge these bugs, it has confirmed another, relatively smaller issue across all supported versions of Windows. In an update on its Windows Release Health Dashboard, Microsoft has confirmed that after installing June's Patch Tuesday update (KB5094126), you'll experience unexpected behavior when leveraging Recycle Bin. Basically, when you attempt to delete an item from the Recycle Bin, the confirm dialog will show you the internal file name of that content rather than the actual name. For example, the file may be named abc.png, but the confirm dialog will ask if you're sure that you want to permanently delete $Rxxxxx.png from the Recycle Bin. This is pretty much it for the scope of the bug itself; it just displays the wrong name in the confirm dialog. The correct name will be shown in the list view of the Recycle Bin and if you restore the file, it will return with the correct name as well. This issue affects pretty much all supported versions of Windows client and server, including: Client: Windows 11, version 26H1; Windows 11, version 25H2; Windows 11, version 24H2; Windows 11, version 23H2; Windows 10, version 22H2; Windows 10 Enterprise LTSC 2021; Windows 10 Enterprise LTSC 2019; Windows 10 Enterprise LTSB 2016 Server: Windows Server 2025; Windows Server 2022; Windows Server 2019; Windows Server 2016; Windows Server 2012 R2; Windows Server 2012 As things currently stand, Microsoft is working on a concrete solution that will be released in a "future" Windows update. It remains to be seen if the firm will wait till the next Patch Tuesday or roll out an out-of-band (OOB) fix. The good news is that commercial customers can deploy a workaround right now, but they will have to reach out to Microsoft Support for Business for additional details.
    • They said by this time everyone will have flying cars. WELL...
    • A study by physicist Henry Tye of Cornell University suggests that the universe may not expand forever. Instead, it could eventually stop expanding, begin contracting and end in a "Big Crunch" roughly 20 billion years from now. Maybe not as we now know that time can flow backwards.
    • Of course. Simply reverse the polarity.
    • It is clear from this aricle that "Time Is On My Side" no matter which direction it is flowing., https://noai.duckduckgo.com/?i...m%2Fwatch%3Fv%3DsEj8lUx0gwY
  • Recent Achievements

    • Reacting Well
      BizSAR earned a badge
      Reacting Well
    • First Post
      AndreaB earned a badge
      First Post
    • Week One Done
      Huge Trailer earned a badge
      Week One Done
    • Week One Done
      Classifyskilleducation earned a badge
      Week One Done
    • One Month Later
      eurospharma62 earned a badge
      One Month Later
  • Popular Contributors

    1. 1
      +primortal
      579
    2. 2
      +Edouard
      183
    3. 3
      PsYcHoKiLLa
      75
    4. 4
      Michael Scrip
      73
    5. 5
      neufuse
      64
  • Tell a friend

    Love Neowin? Tell a friend!