Free Download

Installation Instructions



Ask A Question



Lesson 1















Automated Internet

Automated Editors

Sample Scripts

Precompiled Functions

System Features

Learning Scripting - Lesson 2
(Introduction to variables, Detailed look at a command)

In this lesson, we will introduce the concept of a variable. We will look in detail at the command structure and its various important aspects. As part of the discussion, we will also learn a few new commands, which we will use to emphasize some of the concepts.

  1. Did you understand the important concepts in the last lesson ? If not, please take a look at that lesson again. Look at the words, phrases and sentences in red color. Make sure you understand them.

  2. Start biterScripting. Enter the following command exactly as you see it below. Then press the ENTER key.

    script ""

    Keep biterScripting open throughout this lesson. Make C:/LearningScripting/Lesson2 the current directory, by entering the following command. (This directory was created by the above script command.)

    ccd "C:/LearningScripting/Lesson2"


No programming language will be complete without variables. A variable is a place-holder for a value. Each variable has a type, it is called the variable type. The variable can hold values only of that type. biterScripting provides various types. In this lesson, we will use variables of type - string. The string type is abbreviated as str. A string is a string of characters. We will explain the concepts of variable and string with examples. Enter the following command.

var string s

The var command declares a variable. It takes two or more arguments. The first argument is the variable type, the second argument is the variable name. In this example, we named the variable   's'  . The var command can be used to declare more than one variable. Enter the following command.

var string s2 s3 s4

Above, we declared three variables. Their variable names are s2, s3, and s4. Their variable type is string. A variable name can be any combination of characters, digits, underscores, etc. The first letter of the variable name must not be a digit. Further, a variable by the same name can only be declared once. Type the following command.

var string s

What did the above command do ? You got the error 'Variable s is already declared.' .

Once a variable is declared, it can be accessed by prepending a dollar sign ($) to its name. Enter the following command.

echo $s

The echo command displays the value of a variable. The output of the above command is - nothing. This is because variable s has not been assigned a value yet. The variable value is the value a variable holds. Let's go ahead and assign a value to variable s using the following command.

set $s = "This is my first string value."

The set command above assigned the value "This is my first string value." to variable s. The syntax of the set command has the word 'set', followed by a variable, followed by the equal sign (=), followed by a value. Enter the echo command above again to verify that the value of variable $s is correctly set to "This is my first string value." .

echo $s

QUESTION 2.1 We declared variables s2, s3 and s4 above - all of variable type string. Assign them values "second value", "third value" and "fourth value" respectively. Answer


We saw so far, that commands have arguments. In case of help command, we also saw that some commands have options. (The help command has the option -s (search) . ) Let's look at all aspects of a command.

Figure 2.1 - biterScripting Command
Figure 2.1 - biterScripting Command

As you can see, there are five aspects to a command.

  • Options
  • Arguments
  • Stream Input
  • Stream Outout
  • Stream Error

I will explain them all one by one.


Command arguments are objects on which the command will operate. We looked at some command arguments in the last lesson. We used a directory name or path as a command argument for the ccd command. We used a help topic or search word as a command argument for the help command. Command arguments can be anything depending on the command. They can be file names, directory names, file paths, directory paths, constants (double quoted strings), variables, words, etc. What type of an object, depends on what that particular command is expecting.

Most commands take arguments of type string. Thus, for these commands, whichever way you specify a command argument, it must always result in data of type string. Following are the various ways in which you can specify command arguments. I will show an example for each.

A Constant"This is my string argument."
A variable$s
A function
An inline
{ echo "Pass this string to the command." }
An expression
consisting of
any of above
("This is my string argument."+" But, you can use it.")

All of the above must return data of type string. (You don't know what function calls, inline commands and expressions are yet - and, that's ok. I listed them here just to make this discussion complete.) The point is, there are several ways to pass arguments to a command. That's the strength of biterScripting. You do not have to know up-front what the arguments are. You do not need to hardcode them. I will soon show you some examples of how to harness this power.

QUESTION 2.2 Among the following, which have the type string ?
  1. "Hello world"
  2. 5
  3. 3.20
  4. "3.20"


Command options provide directions to the command as to how it is to operate on command arguments. Command options are specified with a dash (-) followed by a letter. We saw that help command accepts an option -s. This option directs the help command to treat command arguments as search words. Without this option, the help command treats command arguments as help topics.

QUESTION 2.3 Read the help page for the lf command. We will need it for further discussion in this lesson. Also, lf is one of those commands that you will use often. Answer

Many commands take more than one option. For example, the lf command (list files/directories), takes the following options.

-r (recursive)
-g (go around errors)
-t (list type)
-c (list creation time)
-a (list access time)
-m (list modification time)
-s (list size)
-n (list name)

You can specify command options in any order. Also, you can combine two or more command options after a single dash. All of the following are valid ways of specifying command options for the lf command.

-n (list name)
-c -n (list creation time and name)
-n -c (same as -c -n, list creation time and name)
-cn (same as -c -n, list creation time and name)
-s -cn (list size, creation time and name)
-scn (same as -s -cn, list size, creation time and name)


A stream is a collection of bytes. Output from a command, errors from a command and input to a command are called streams. (There is some significance to using the word 'stream'. In programming world, you may have also heard the words standard output, standard error, standard input, stdout, stderr, stdin, etc. For our purposes, they all mean one and the same. They are all collections of bytes.)

Stream output is where a command writes its output. By default this output goes to the screen.

Stream error is where a command writes errors encountered during execution of the command. By default, these errors also go to the screen.

Stream input is where a command reads its input from. It is the input that the command will operate on, in addition to the command arguments. By default, stream input is empty.

Let us execute some commands and look at their stream output, error and input. Enter the following command.

lf -rn "*" "C:/LearningScripting"

The lf command lists files and directories within a directory. The "C:/LearningScripting" is the directory. "*" is the pattern for file/directory names. -r means recursive. -n means list file/directory name. The lf command always lists file and directory names with full path, starting with "C:/"

The stream output of the above lf command contains file and directory names, one per line. This stream output appears on screen by default.

QUESTION 2.4 In the lf command we entered above, what command options and command arguments did we use ? Answer

Now, enter the following command.

ccd "C:/LearningScripting/XYZ"

The stream error from the above ccd command contains a string such as 'Unable to change current directory to C:/LearningScripting/XYZ .' . (We are assuming that the directory C:/LearningScripting/XYZ does not exist.) This stream error appears on screen by default.

  1. We saw that we can use pattern-matching character star (*) in the lf command. The repro command also accepts star (*) as a pattern-matching character. Enter the following commands.

    ccd "C:/LearningScripting/Lesson2"
    lf -n "*.txt"
    repro "*.txt"

    The lf command above will list all files with extension .txt . Similarly, the repro command will reproduce the contents of all files with extension .txt .
  2. biterScripting keeps a history of commands you type. Couple of keys on the keyboard are programmed to navigate through this command history. The F3 key is used to recall previous command. The F4 key is used to recall next command. When you use these keys, biterScripting will bring in the appropriate command into the input area. This convenience comes in handy when you are typing long commands again and again. Instead of having to retype the entire command again, just recall the previous command using the F3 and F4 keys, make necessary changes, if any; then hit ENTER to send the command for processing. Try the F3 and F4 keys now.

    If the cursor is in the input area, the UP and DOWN keys work the same way as F3 and F4 respectively. All such keyboard shortcuts are described in the help topic - keyboard . To see this help topic, type the following command.

    help keyboard

In this lesson, we learned
  1. How to declare variables. We learned one variable type - string.
  2. Detailed aspects of a command - arguments, options, stream output, stream error, stream input.
  3. Some additional commands - var, echo, set, lf.

  1. Revisit the important concepts we learned in this lesson (words, phrases or sentences in red color). Make sure you understand them. Answer
  2. Using the lf command, list all files with extension .txt in directory C:/LearningScripting (and its subdirectories). Answer

2008-2014, All rights reserved.
biterScripting, biterScript, biterBrowser, biterMobile,, FVA (Forward Variable Assignment) are trademarks of Is it biterScripting-compatible ? is a service mark of Explorer, Unix, Windows are trademarks, service marks or other forms of intellectual property of their respective owners.