Episode: 3490
Title: HPR3490: The Path
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr3490/hpr3490.mp3
Transcribed: 2025-10-25 00:20:39

---

This is Hacker Public Radio Episode 3494 Friday, 17 December 2021.
Today's show is entitled, The Path and Is Part of the Series Doss It Is Hosted by Aukka
and is about 15 minutes long and carries a clean flag. The summary is, more on Doss This Time It
Is The Path. This episode of HPR is brought to you by archive.org.
Support universal access to all knowledge by heading over to archive.org forward slash donate.
Hello, this is Aukka, welcoming you to Hacker Public Radio and another exciting episode in our Doss series.
Today we're going to look at the path, a very important concept.
We'll start with the command line. Everything you do in Doss is done from the command line.
The command line begins with a prompt, which is the computer's way of saying,
I'm ready to give me something to do. The prompt usually looks something like C, colon, backslash, and a greater than sign.
But note that you can configure how your prompt appears, so you should not assume it will always appear exactly like the example.
The example I just gave is the default, but back in the day we used to amuse ourselves by coming up with our own unique command prompts.
Now, from the command line, you can do two things. You can run an internal command, one that is contained in commands.com, or you can run a program.
Now external commands are programs, which are found in separate files in your DOS directory, so running programs includes running external commands.
But it also means running the applications software that you use to do things on your computer.
You can also run a batch file, but in that case all you're really doing is running a series of commands or programs that are listed in the batch file.
If you enter a name that is not recognized by DOS as either an internal command or a program, you will get the error message, bad command, or file name as a consequence.
Now, in Windows NT, the command interpreter gave an even more informative message. The name specified is not recognized as an internal or external command operable program or batch file.
Now, if you receive an error message like this, it means one of several things.
First, the name you gave is incorrect for some reason. Maybe you misspelled it. Maybe you're using the wrong name.
Remember, some of the DOS names are shortened, like check disk is CHKDSK, and you might get that wrong.
So check the name and spelling and try again.
Second possibility. The program you're trying to run is not installed on the computer, so you would then want to verify that it's installed.
But the third possibility is that the file is there, but the computer doesn't know where it is.
Now, for DOS to run an application file, it has to be one of three kinds.
It could be a .COM file. That's a file in machine language. It must be less than 64K in size.
A .exe, a file in machine language, but it can be larger than 64K.
.exe files also have information at the beginning of the file that tells DOS what type of file it is and how to load and run it.
And finally, a .bat, which is a batch file that is written with a text editor, and it's an ASCII text format.
It contains DOS commands that are executed in batch mode, which means that each command is executed in sequence until the file ends.
Now, the path comes into this because we've mentioned that sometimes DOS cannot find a valid file, and this brings us to the idea of a path.
When you enter the name of an executable application file, DOS has to find it. DOS looks for the file in a specific hierarchy of locations.
First, it's going to look in the active directory of the current drive.
That's the working directory equivalent to in Linux to the PWD, present working directory.
So, if you're in the directory C, colon, backslash, DOS, and you type in the name Fubar.exe, DOS will logically enough look in C colon, backslash, DOS for such a file.
In fact, you do not need to type in the file extension. If you simply type in Fubar, DOS will look for any executable file with that name.
Whether it's Fubar.exe, Fubar.com, Fubar.bat. If DOS finds this file, it will run it.
Now, if DOS does not find it in the working directory, it will consult something called the path.
This is a list of directories that DOS has been instructed to check whenever it cannot find a file in the current active directory.
Now, you can see what the path is for your computer at any time using the path command.
Just type path at the DOS prompt and you'll get back your path.
For instance, on one of my machines, I typed in path.
And I got back path equals C colon, backslash, win31, semicolon, C colon, backslash, DOS.
Now, the first line is the prompt, C colon, backslash, path, and then the response, path equals C colon, backslash, win31, semicolon, C colon, backslash, DOS.
So, you can see that the first place DOS will check is the Windows 3.1 directory and the second place is the DOS directory.
Now, if I wanted to change this, I could enter a path command and put in a new path.
So, at the prompt, I would type path equals C colon, backslash, temp, backslash, semicolon, C colon, backslash, DOS, semicolon, C colon, backslash, DOS.
C colon, backslash, win31, and that puts in a new path.
Now, I can check this by just typing path at the prompt and I get back path equals C colon, backslash, temp, semicolon, C colon, backslash, DOS, semicolon, C colon, backslash, win31.
Now, by the way, you may wonder when you're working with this, why some things are lowercase and some uppercase, it really doesn't matter in DOS. DOS is not case sensitive.
Internally, DOS uses all uppercase letters and that's why you see the output from your commands in uppercase.
But if you type them in as lowercase, a converter automatically converts them to uppercase and they are executed.
So, if you had a DOS computer around, you could try doing this, set a path.
Now, the next question you might have is where that path comes from.
Well, the initial response you get to path is from something that's set in auto-exec path.
This is a batch file that automatically executes, that's why it's called auto-exec, when you boot your computer.
Now, you can edit this file with the DOS program edit.
To see or edit the contents of the file, you would enter the following command, edit auto-exec.bat.
After you've looked at this file, you can exit from the program by hitting the following keys in order.
First, the alt, then the f, and then the x.
Now, what would happen if you removed C colon backslash DOS from the path?
You would suddenly find you could not use any external DOS commands unless C colon backslash DOS is the working directory.
So, you don't want to do that.
So having C colon backslash DOS or whatever your DOS directory is in the path is extremely important.
Now, when you install software and DOS, it is common to find that the software you installed has modified the auto-exec bat and changed the path command it contains.
This is not necessarily a bad thing.
Often the program needs this to function, and it does make life convenient.
As an example, one of the most popular DOS programs was WordPerfect.
The Word Processing program.
This program would typically install itself in the directory C colon backslash WP and then add this directory to the path.
The executable file to launch the program was WP.exe, and that would be found in the C colon backslash WP directory.
By having this directory in the path, all you needed to do to launch and run this program is type WP in any command prompt.
This is very convenient.
But there are a couple of considerations in using the path.
First, the path has a limit of 256 characters total.
So you cannot simply add every directory on your hard drive.
Second, DOS will search through every directory in the path looking for an executable file.
The more directories you put in there, the more searching goes on.
So you want to keep your path statement limited to the essentials.
That usually means your DOS directory, a couple of frequently used apps and the directories for drivers for peripherals like the mouse and the sound card.
Because there's another thing about DOS, we're talking about primitive technology.
You had to load drivers, and it got to be very complex how you would do this, to run these peripherals.
Like if you want to, the first DOS computers didn't have mouse's or mice.
I think mouse's is probably correct actually.
So if you got a mouse and wanted to use it, you would have to get a driver for it.
You have to put the driver on your hard drive.
You would then have to add that to your path statement and load that driver in your auto-exec path if you wanted to use the mouse.
Same thing again, if you wanted to add a CD drive, the first DOS computers did not have CD drives.
That was an add-on.
And remember, you only had 640K of lower memory.
There are ways to try and get around it.
You can steal memory from upper memory using either expanded or extended memory, but I'm not going to get into all of that right now.
Let's just say that, you know, the path statement, you had to keep an eye on it.
You can't just willy-nilly add things in there.
So you can have your DOS directory, frequently used apps, drivers for peripherals, the mouse, the sound card.
For other programs, you can create a simple batch file or even a menu that will let you switch the working directory and launch the program in one step.
We'll talk about batch files later on.
One thing you need to watch out for is having two path commands in the auto-exec path.
This is not good because the second one will replace the first one.
So you want to make sure you only have one path command in your auto-exec path.
But you would also have to watch out for something like this.
Set path equals C colon, backslash, DOS, semicolon, C colon, backslash, mouse.
And then path equals percent path, percent semicolon, C colon, backslash, Lotus.
Now this looks like two path commands, but it isn't.
The first line is creating a variable called path.
And the second line, which is a path command, is including the contents of the path variable.
This is a legitimate technique and all three directories will be in the resulting path.
So set space path is setting a variable that happens to have the name path with certain values.
And then separate command path equals, and what it's doing is including it with the percent path percent.
That says include the variable path, and then in addition, C colon, backslash, Lotus.
Now, one last node on paths.
DOS will go through each directory in the path statement in order, looking for the executable file you tried to run.
You can improve your DOS performance, therefore, by placing directories in the proper order.
I would always put the DOS directory first on a purely DOS system.
Now, if you have Windows 3.1 installed or something like that, you might want to put that directory first, followed by the DOS directory.
I would follow this with the device drivers like the mouse and the sound card, and place any application directories at the end.
And I would only include those applications that I use on a daily basis in the path.
So with that, this is a hookah for hacker public radio signing off, and as always encouraging you to support free software. Bye-bye!
You've been listening to Hacker Public Radio at HackerPublicRadio.org.
We are a community podcast network that releases shows every weekday Monday through Friday.
Today's show, like all our shows, was contributed by an HPR listener like yourself.
If you ever thought of recording a podcast, then click on our contributing to find out how easy it really is.
Hacker Public Radio was founded by the digital dog pound and the Infonomicon Computer Club, and is part of the binary revolution at binrev.com.
If you have comments on today's show, please email the host directly, leave a comment on the website or record a follow-up episode yourself.
Unless otherwise stated, today's show is released on the creative commons, attribution, share a life, 3.0 license.
