Skip to main content

VB script to copy folders to a USB/Drive

Today I had to find a solution for a user to backup/copy his folders to a USB drive. Instead of using backup utilities, I wanted to try my luck in VB script. As usual Google'd and found hundreds of scripts. Took codes from several of them and compiled one which will copy folders from one drive to another with prompting the user that it is copying. The script creates an archive folder if it doesn't exist. Create a folder with the date and puts data inside that. So in case one of your backup is corrupted you will have date wise copies of your data.

The code is as below.

=================Code start=====================

Dim objFSO, objWshell, oIE, oIEDoc

set objWshell = Wscript.CreateObject("Wscript.Shell")
Set oIE = Wscript.CreateObject("InternetExplorer.Application")
oIE.Navigate "about:blank"
do while oIE.busy : wscript.sleep 10 : loop
Set oIEDoc = oIE.Document

oIE.AddressBar = False
oIE.StatusBar = False
oIE.ToolBar = False
oIE.Document.Body.Scroll = "no"
oIE.document.title = "... - Processing files"
oIE.height=100
oIE.width=200
oIE.Resizable = False
oIE.Visible = True

sMsg= "<center>Files are being copied.<br>Please wait...</center>"
oIEDoc.Body.Innerhtml= sMsg

sourceDir1 = "path\to\folder"
sourceDir2 = "path\to\folder"
sourceDir3 = "path\to\folder"
destinationDir = "USBDriveletter:\archive"

Set objFSO = CreateObject("Scripting.FileSystemObject")
IF objFSO.FolderExists(destinationDir) = FALSE THEN
objFSO.CreateFolder destinationDir
wscript.echo "Archive folder created"
ELSE
wscript.echo "Archive folder already exists"
END IF

const OverwriteExisting = True

strDirectory = destinationDir & "\" & replace(date,"/","_")
Set fso = CreateObject("Scripting.FileSystemObject")

if not fso.FolderExists(strDirectory) then
   Set objFolder = fso.CreateFolder(strDirectory)
end if
   fso.CopyFolder sourceDir1 , strDirectory & "\", OverwriteExisting
   fso.CopyFolder sourceDir2 , strDirectory & "\", OverwriteExisting
   fso.CopyFolder sourceDir3 , strDirectory & "\", OverwriteExisting

Set oIEDoc = Nothing
oIE.Quit
Set oIE = Nothing

Set objFSO = Nothing
Set objWshell = Nothing
Set WshShell = Nothing

MsgBox "Process completed successfully", 64 + 262144, "Process complete"
=================Code end=====================

Thanks to all who have published their code publicly. I am carrying it forward. Feel free to use and a comment if you feel it is good.

Comments

Popular posts from this blog

Create Great looking diagrams - Gliffy.com

I was looking for an online diagram creating tool. Came across Gliffy.com where I could create actually great looking diagrams without much of learning curve. The tool is 1. Very easy to use 2. Has drag and drop of elements to your diagram 3. Collaboration (which I have not tested). 4. Works from anywhere on a browser with Internet connection (I used it in Google Chrome on Linux Mint 10) When you click on the "Try it now" a new screen will open as below. You can either create a blank page to create a diagram from scratch or select from a bunch of samples and work on them to create one for your requirement. There are options to export the diagrams you created to SVG, JPEG, PNG and XML format once you register for free on the website. Once you register you can save the diagrams that you created in the site itself and retrieve it at a later time by logging into the website. I made three diagrams and it was real easy and simple. The site has two kind of pa

Nodejs and NPM setup on Linux Mint

To install current version of Node js on Linux Mint or any Ubuntu derivatives 1. Install Node      $ curl -sL https://deb.nodesource.com/setup_11.x | sudo -E bash - 2. Check Node version     $ node -v         vxx.xx.x    $ npm -v         x.x.x 3. Verify the Node installation      var http = require('http');      http.createServer(function (req, res) {      res.writeHead(300, {'Content-Type': 'text/plain'});      res.end('Hello World...!!!');      }).listen(3001, "127.0.0.1");      console.log('Server running at http://127.0.0.1:3001/');     open your browser and type the URL  http://127.0.0.1:3001/    You can see the me ssage “Hello World…!!!” Source:  1. https://github.com/nodesource/distributions/blob/master/README.md 2.  https://medium.com/@shivraj.jadhav82/nodejs-and-npm-setup-on-linux-mint-19-696023d50247

Kerio Connect - SQLLite journal.db error

Today I noted that the Keio Connect mail server had thousands of error.log files with 75MB size filled up in the server. As always Google gave the answer. The error looks some what like below. [10/Aug/2011 10:49:35] SQLiteDbWriteCache.h: write_thread - file '/path/to/file/<user>/.journal.db', SQLite error: code 1, error SQLITE_ERROR[1]: no such table: journal_temp The solution is as below 1. Delete the cache from the client's workstation 2. Delete the profile 3. Stop the server 4. Go to the server and navigate through the user's store folder 5. Delete the .journal.db (for Linux it is  find . -name "FILE-TO-FIND"-exec rm -rf {} \; ) 6. Start the server 7. Create a new profile for the clients workstation With help from Kerio Forum Cyberciti