Batch File to store backup files with timestamps - windows

I have two folders in the same drive. I want to create backup of an access database. I need to copy the main file, append the name with the date and time and store it in a different folder.
Source Folder: G:\PMO\Talent Mgt\Data
Source file: Talent_Management_Data.accdb
Destination File: G:\PMO\Talent Mgt\Archive\Talent_Management_Data.accdb_20120101
Any suggestions?

You can achieve this by using for command to execute copy for each file. A simple batch file would be:
cd "G:\PMO\Talent Mgt\Data"
for %%A in (*.accdb) do copy %%A ..\Archive\%%A_%date:-=%

Related

Copy Contents From Folder Using Wildcard On The Directory

I have a directory which contains CSV files needing to be moved to another directory:
C:\Users\JohnSmith\Desktop\Testing\report-20180819040000-20180826040000-4
We receive a new file weekly where the dates in the directory name will be updated. I want to create a batch file to copy this data using a wildcard on report* but I am running into some issues.
The wildcard appears to work without any issues when I first navigate to:
C:\Users\JohnSmith\Desktop\Testing\
then use:
dir report*
It also works fine when I navigate to:
C:\Users\JohnSmith\Desktop\Testing\
then run
copy * C:\Users\JohnSmith\Desktop\Testing\Destination
My goal is to be able to run something simple in my batch file like the below:
copy C:\Users\JohnSmith\Desktop\Testing\report* C:\Users\JohnSmith\Desktop\Testing\Destination
Whenever I try running the above, I receive the following error:
The system cannot find the file specified.
0 file(s) copied.`
Does anyone have any suggestions?
Use For /D with a wildcards for your directory name, then you can use Copy with a wildcard too!
From the Command Prompt:
For /D %A In ("%UserProfile%\Desktop\Testing\report-*-*-*") Do #Copy "%A\*.csv" "%UserProfile%\Desktop\Testing\Destination">Nul 2>&1
From a batch file:
#For /D %%A In ("%UserProfile%\Desktop\Testing\report-*-*-*") Do #Copy "%%A\*.csv" "%UserProfile%\Desktop\Testing\Destination">Nul 2>&1
Alternatively you could do it directly at the Powershell Prompt:
Cp "$($Env:UserProfile)\Desktop\Testing\report-*-*-*\*.csv" "$($Env:UserProfile)\Desktop\Testing\Destination"

How to use WinRAR through Batch?

I need some help with a batch file because I am stumped on WinRAR in Batch, as I haven't done/used it before.
Here is the TREE of my Folders including the batch file:
Each RAR file has the same Directory folder name("vegies" folder).
I would like to be able to extract/copy all folders/subfolders inside of each .rar from "Example/Program_Ex/vegie" back one directory into "Example/Program_Ex/vegies" (Dont forget the folder "vegies" already exists in each RAR which I cannot change as these automatically update themselves.)
So basically with a batch file I would like to:
extract "Example/Program_Ex/vegie/random.rar" to "Example/Program_Ex/vegies"
extract "Example/Program_Ex/vegie/random2.rar" to "Example/Program_Ex/vegies"
extract "Example/Program_Ex/vegie/random3.rar" to "Example/Program_Ex/vegies"
extract "Example/Program_Ex/vegie/random4.rar" to "Example/Program_Ex/vegies"
extract "Example/Program_Ex/vegie/random5.rar" to "Example/Program_Ex/vegies"
I also am trying to not specify a drive, more or less because the batch file will be in the correct folder instead using something such as "CD" or "PATH"?
I have looked at some examples around the web and on here of coarse, but I am still unsure the best way to go about this.
The closest example I can find would be this:
#echo off
set destinationRAR=destination_winrar_file
set source=source_folder_path
"C:\Program Files\WinRAR\WinRAR.exe" a -ep1 -esh -ibck -m0 -r -t %destinationRAR% %source%
(Above from http://fredy-invayne.blogspot.com.au/2013/05/example-winrar-batch-file.html)
Can anyone help give examples on how to implement my question please?
#echo off
for %%a in (
"%~dp0Example\Program_Ex\vegie\*.rar"
) do unrar x "%%~fa" -w "%~dp0Example\Program_Ex" -o+
For each file in the indicated path under the folder in where the batch file is stored, extract the content of the file indicating target folder and selecting that existing files must be overwritten.
You can extract all the archives with a single invocation of WinRAR:
"C:\Program Files\WinRAR\WinRAR.exe" x "%~dp0Program_Ex\vegie\random*.rar" "%~dp0Program_Ex\"
The last argument in the above command line specifies the target folder for all the archives. You may want to add the -o+ switch (must go just after x) to specify that all files should be overwritten:
"C:\Program Files\WinRAR\WinRAR.exe" x -o+ "%~dp0Program_Ex\vegie\random*.rar" "%~dp0Program_Ex\"
If you omit it, the archiver will ask you what to do with existing files, if any.

How to copy war file into a particular destination using batch command?

SET src="C:/Users/Neonous/Desktop/New folder/Package/Project-1.war"
SET dest="C:/Program Files/Apache/webapps"
xcopy %src% %dest% /E
I tried the above script to copy war file. its extracting and creating some unwanted directories in to the destination location.
i want to copy the zipped file.... as such Project-1.war.
Simple :
copy %src% %dest%\Project-1.war
I don't know why you want to use xcopy if you want to copy the file only.
If you want to do something else please specify.
Also use backslash" \ " to separate directories and specify file name for targeted destination.
Hope this helped,
Yours Mona.

Windows Batch Copy file by filename

The file I want to copy is located in "C:\Report\" and the filename I want to copy is something like "rptXXXX.txt".
What I want to do is write a batch that copy the file that the filename is start with "rpt".
The destination folder is "F:\Project\Report\".
This should work, you can use an * as a wildcard:
xcopy e:\foo\rpt*.txt e:\foo2
or in your case,
xcopy C:\Report\rpt*.txt F:\Project\Report\

SQL Loader: writing batch file (windows) for processing multiple data file

I want to process all the .CSV in files (data files) in specific folder. My problem is how can i pass this file name to sql loader as every time it would be different file name.
I want to have all this stuff in single batch file so that i can schedule it whenever i wish.
Can anyone help me out pls?
Thanks in advance....
Mehul
Assuming for each .csv file there is a corresponding .ctl (control file) the following should work:
for %%i in (*.csv) do (
sqlldr data=%%i control=%%~ni.ctl log=%%~ni.log
)
This assumes the files are in the current directory. You might want to add the approriate cd commands before iterating over the input files.

Resources