Jump to content

Backup Script


Xandy
 Share

Recommended Posts

WARNING: I never tried this on a root directory, I should probably write a fix for that case. EX: There is no C:\..\

I don't know how many of these there are on this forum and I know Tidy is real nice for making backups.

I have a few dislikes relying on the Tidy backup:

1 I'm not crazy about the backup folder it creates in project folder.

2. If no Tidy edits are performed script is not backed up on Tidy.  I can't rely on that when I request a backup.

3. If I want to backup a select group of files without backing up the entire project folder, it is somewhat tedious to select each file and Tidy.

 

Now this is just a very simple script that I felt I could use to simplify backing up my project.

I'm not asking you to code it for me, but I welcome feedback.  If you think you can make it better or know of something better please share.

I know of Github it's overkill for me, I'm not comfortable, and I won't use it as much as I need to.

 

So here it is:

You place it in the source folder, open it in Scite.

Change: Global $gBackup_dir_path = "..\Backup\" to wherever you want you backup folder Path to be.

in the main() add some backup("file_name") calls remember to remove file extension.

and it should make a new backup file for each backup("file_name") every time you run the script.

Test it out make sure it's working and you're good to go.

 

#cs ----------------------------------------------------------------------------

    AutoIt Version: 3.3.14.2
    Author:         myName

    Script Function:
    To copy files to a backup folder.

#ce ----------------------------------------------------------------------------

#include <File.au3>

Global $gBackup_dir_path = "..\Backup\"

; Todo
; Add notes, options notes in file name

main()
func main()

    ; File list remember to remove extentions from file_name
    ; or add file extention as second parameter
    backup("Map_Editor")
    backup("DW_Server")

EndFunc

Func backup($spFile_name, $spFile_ext = ".au3")

    Local $error = 0
    Local $iFile_num = 0

    ; Make source file path
    Local $sFile_path_source = $spFile_name & $spFile_ext

    Local $sFile_path_dest = ""

    ; Sample the contents of the backup directory before creating a file there
    Local $aFile = _FileListToArray($gBackup_dir_path, $spFile_name&"*"&$spFile_ext, $FLTA_FILES)
    $error = @error

    If $error = 0 Then

        $iFile_num = $aFile[0]

    EndIf

    out("Found: " & $iFile_num & " files named: " & $spFile_name)

    Do

        ; Incroment file_num to find available file_name
        $iFile_num += 1

        ; Path to Write File Copy
        $sFile_path_dest = $gBackup_dir_path & $spFile_name & "_" & $iFile_num & $spFile_ext

        ; Refuse to Overwrite File
        If FileExists($sFile_path_dest) = 0 Then

            ExitLoop

        EndIf

        ; Am I right?
        Sleep(30)

    Until 0

    ; Create the file
    FileCopy($sFile_path_source, $sFile_path_dest, $FC_CREATEPATH)
    $error = @error

    If $error Then out("FileCopy() error: " & $error)

    out("sFile_path_source: " & $sFile_path_source & " sFile_path_dest: " & $sFile_path_dest)

EndFunc   ;==>backup

Func out($output = "", $user = 0);debug tool

    ConsoleWrite(@CRLF & $output);to console new line, value of $output

EndFunc   ;==>out

Backup_Script.au3

The script isn't authorized to overwrite files, and tries to create the next number of file_name available.

The 'p' in my variable names stands for parameter.

Edited by Xandy
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...