Introduction: Circumvent Restrictions on CMD.exe or DOS Prompt

About: A programmer ever since I laid my hands on a TRS-80 writing BASIC programs like mad-libs in 1990. Goes back to 1984 if you count my trance-like state induced by a PET computer. Now I get paid to do it. What…

Ever been on a computer where you did NOT have permission to run "cmd.exe" in order to operate in DOS mode? Maybe you didn't have the option to click "Start" -> "Run"? Do what you want with a simple batch file despite these silly restrictions.

Addendum: This method was used to provide a shell-like interface on an XP machine running Citrix server. The "full desktop" application was published (looks like Remote Desktop) but wouldn't let me use the shell due to security questions. Many have wondered why exactly I did what I've done below, so now you know the context.

Step 1: Create the Batch File

The first step is to create the batch file. Create a new file on your desktop and name it "shell.cmd" or "dos.bat". Name it anything you like as long as the file extension ends in .cmd or .bat.

Inside the file, put the following code:

@ECHO OFF

REM make all environment changes local to the execution of this script.
SETLOCAL
REM show customized welcome message, version of Windows and a blank line
@ECHO --== Welcome to your customized DOS Batch Shell ==--
VER
ECHO.

REM create loop block where user is prompted for a command and
REM that command is executed, displaying the results.
:cmdloop
REM Display working dir prompt, asking for a command.
@set /p USERCMD=%CD%!
REM "quit" or "exit" will both exit this shell.
@IF "%USERCMD%"=="quit" GOTO END
REM execute the received command.
%USERCMD%
REM go back to the beginning of this block.
@GOTO cmdloop

:end
REM end local environment changes
@ENDLOCAL

REM pause briefly before closing this window
@pause

Step 2: Run the Batch File

If you've given the file the proper extension, the icon should look like a window with a gear as seen below. Double-click on it to run it!

Step 3: It Works! (right?)

If everything is working, you should be able to enter most any DOS command (whether interactive or not) and it should function correctly. Although I added a "quit" command that will jump OUT of the execution loop and go to a PAUSE, if you type "exit" the batch file will quit execution and close the window immediately.

I wasn't able to figure out a way to echo the greater-than symbol for use with a prompt, so instead I used the exclamation mark (followed by a space, although you can't tell that from the picture). Go ahead and customize your batch file to suit your needs. Try using ASCII codes that create graphics, tables, and so on. Be creative! Try typing "prompt /?" to get some ideas, too.

I created this batch file out of necessity. While at work I was given a very "nerfed" account on a Windows machine, but really needed the output of some simple DOS commands. I hope you find this useful.