What is a Batch (.bat) File ?
A batch file contains a series of DOS commands, and is commonly written to automate frequently performed tasks. Instead of typing the same commands over and over, you can simply double-click the batch file. Writing a batch file is easier than it looks; the difficult part is making sure that everything happens in the right order. Well-made batch files can save you a lot of time over the long run, especially if you deal in repetitive tasks.
Note: In Linux, shell scripts are used instead of batch files
How to write a simple Batch(.bat) File?
Step 1: Open Notepad. Notepad allows you to create code as a text file and then save it when you're done as a batch file. You can open Notepad by clicking Start → Programs → Accessories → Notepad. You can also enter notepad into the Run box.
Step 2: Learn some basic batch commands. Batch files run a series of DOS commands, so the commands that you can use are similar to DOS commands. Some of the more important ones include:
- ECHO - Displays text on the screen
- @ECHO OFF - Hides the text that is normally output
- START - Run a file with it's default application
- REM - Inserts a comment line in the program
- MKDIR/RMDIR - Create and remove directories
- DEL - Deletes a file or files
- COPY - Copy a file or files
- XCOPY - Allows you to copy files with extra options
- FOR/IN/DO - This command lets you specify files.
Step 3: Write a program to create a directory. One of the easiest ways to learn how to create batch files is to focus on doing basic tasks first. For example, you can use a batch file to quickly create multiple directories.
MKDIR c:\example1
MKDIR c:\example2
Step 4: Save the file. Once you have entered your code, you can save the file using the Batch filetype.
- Click File → Save As.
- Click the "Save as type" dropdown menu.
- Select "All files".
- Enter a name for the program followed by .bat
Step 5: Write the code to make a basic backup program. Batch files are great for running multiple commands, especially if you configure it to be able to run multiple times. With the XCOPY command, you can make a batch file that copies files from select folders to a backup folder, only overwriting files that have been updated since the last copy:
@ECHO OFF
XCOPY c:\original c:\backupfolder /m /e /y
This copies over files from the folder "original" to the folder "backupfolder". You can replace these with the paths to the folders you want.
/m specifies that only updated files will be copied,
/e specifies that all subdirectories in the listed directory will be copied, and
/y keeps the confirmation message appearing every time a file is overwritten.
Step 6: Save the file. Once you have entered your code, you can save the file using the Batch filetype.
- Click File → Save As.
- Click the "Save as type" dropdown menu.
- Select "All files".
- Enter a name for the program followed by .bat
Step 7: Write a more advanced backup program. While simply copying the files from one folder to another is nice, what if you want to do a little sorting at the same time? That's where the FOR/IN/DO command comes in. You can use that command to tell a file where to go depending on the extension:
@ECHO OFF
cd c:\source
REM This is the location of the files that you want to sort
FOR %%f IN (*.doc *.txt) DO XCOPY c:\source\"%%f" c:\text /m /y
REM This moves any files with a .doc or
REM .txt extension from c:\source to c:\text
REM %%f is a variable
FOR %%f IN (*.jpg *.png *.bmp) DO XCOPY C:\source\"%%f" c:\images /m /y
REM This moves any files with a .jpg, .png,
REM or .bmp extension from c:\source to c:\images
Step 8: Save the file. Once you have entered your code, you can save the file using the Batch filetype.
- Click File → Save As.
- Click the "Save as type" dropdown menu.
- Select "All files".
- Enter a name for the program followed by .bat