Skip to main content

Passing Parameter to a Dos/Windows Batch File

Some time we need to provide the parameters (the data to be processed) to a batch file at the time of calling the batch process. Suppose we want to add two numbers by a batch file. So, let's consider a name for the batch file, say, add.bat
Now, if we want to add 4 and 5 by this batch file we have to write on the command prompt as,
add 4 5
Then it will show the result 9

In a batch file the parameters are referred by numbering like, for the discussed batch file %1 refers the first value of parameter, i.e., 4 and %2 refers 5.
So the content of the batch file will be....

@echo off
set/a sum= %1 + %2
echo %sum%
echo on
Comments on each line............... @echo off :: This command will off the echoing (displaying) the next commands until the echoing is on. set/a sum= %1 + %2 :: This Command evaluate the addition process and store the value in a variable named sum. /a is a switch for set command to evaluate any expression. echo %sum% :: This command will show the value of summation which is stored in the variable sum. echo on :: After this command every command will be echoed on the screen. If you want to pass a filename as a parameter and work on that file then some additional references will be needed. The following Table will help you to know about them.
ParametersComments
%~f1Expands %1 to a fully qualified pathname. If you passed only a file name from the current directory, this parameter would also expand to the drive or directory.
%~d1Extracts the drive letter from %1
%~p1Extracts the path from %1
%~n1Extracts the filename from %1 without the extension
%~x1Extract the file extension from %1
%~s1Changes the n and x options’ meanings to reference the short name. You would therefore use %~sn1 for the short filename and %~sx1 for the short extension.
And we also combine them to get our expected result. As Example.... %~dp1 to expand %1 to a drive letter and path only or use %~sp1 to display short path.

Comments

Popular posts from this blog

Day of Week according to Date

We have 7 days in a week. And the first Day of the Date System is Sunday . And it should be. So, 01.01.0001, i.e., First Date of Christ was Sunday. We just number the days as follows. 0 = Sunday 1 = Monday 2 = Tuesday 3 = Wednessday 4 = Thursday 5 = Friday 6 = Saturday So, we can handle every day by the reminder of 7. Cause, u just see, after every 7 days the same day is repeated. Then, lets a rough Calculation. 01/01/0001 => Sunday = 0 Now, we just try to find out the day on 1st January on next year, i.e., 01/01/0002 0001 has 365 days. So, after 365 days which day will come? To find out the answer of this question we have to perform following calculation. 7 ) 365 ( 52 35 ----- 15 14 ---- 1 The reminder is 1, i.e.,Monday. But, using this method, it is very critical to find out the day of 1st January of 1988. So, we have an another idea. Find out how many Leap years are present before current year. Suppose it is L . So, L = y/4 If Current year is...

IntArray Class Definition:: It can hold an array of Integer with Diffrent Size

A Class named ' intarray ' which can store an integer array of different size. This Class contains:: O Constructor with deafault argument value At the time of Object creation if array size is missing then An array of size 0 will be created. O Copy Constructor This Constructor is used to create a new Object from an existing Object. O Overloaded Operator = This operator is overloaded to assign an intarray object into another object, simply as two integer variables can be made. O Overloading Operator [ ] As array element can be reffered by its position declaring in Subscript operator ( [ ] ), here every element of an object array can be reffered by [ ] operator. O Overloading Operator >> This is an input operator . Here we can take input to a object simply by this line cin >> a; . Here a is an intarray object. O Overloading Operator This is an output operator . Here we can get the output of an intarray object by this line cout . Here a is an intarray ob...