Tuesday 3 December 2019

Command Prompt Cheat Sheet

Informational Posts

Command Prompt Cheat Sheet

**CMD Cheat Sheet**

First thing to remember its a way of operating a computer. It's the way we did it before WIMP (Windows, Icons, Mouse, Popup menus) became common.

**Getting Help**

For general help. Type `Help` in the command prompt. For each command listed type `help <command>` (eg `help dir`) or `<command> /?` (eg `dir /?`).

Some commands have sub commands. For example  `schtasks /create /?`.

The `NET` command's help is unusual. Typing `net use /?` is brief help. Type `net help use` for full help. The same applies at the root - `net /?` is also brief help, use `net help`.

References in Help to new behaviour are describing changes from CMD in OS/2 and Windows NT4 to the current CMD which is in Windows 2000 and later.

--------------------------
**Punctuation**

    &    seperates commands on a line.
    
    &&    executes this command only if previous command's errorlevel is 0.
    
    ||    (not used above) executes this command only if previous command's 
    errorlevel is NOT 0
    
    >    output to a file
    
    >>    append output to a file
    
    <    input from a file
    
    2> Redirects command error output to the file specified. (0 is StdInput, 1 is StdOutput, and 2 is StdError)
    
    2>&1 Redirects command error output to the same location as command output. 
    
    |    output of one command into the input of another command
    
    ^    escapes any of the above, including itself, if needed to be passed 
    to a program
    
    "    parameters with spaces must be enclosed in quotes
    
    + used with copy to concatinate files. E.G. copy file1+file2 newfile
    
    , used with copy to indicate missing parameters. This updates the files 
    modified date. E.G. copy /b file1,,
    
    %variablename% a inbuilt or user set environmental variable
    
    !variablename! a user set environmental variable expanded at execution 
    time, turned with SelLocal EnableDelayedExpansion command
    
    %<number> (%1) the nth command line parameter passed to a batch file. %0 
    is the batchfile's name.
    
    %* (%*) the entire command line.
    
    %CMDCMDLINE% - expands to the original command line that invoked the
    Command Processor (from set /?).
    
    %<a letter> or %%<a letter> (%A or %%A) the variable in a for loop. 
    Single % sign at command prompt and double % sign in a batch file.
    
    \\ (\\servername\sharename\folder\file.ext) access files and folders via UNC naming.
    
    : (win.ini:streamname) accesses an alternative steam. Also separates drive from rest of path.
    
    . (win.ini) the LAST dot in a file path separates the name from extension
    
    . (dir .\*.txt) the current directory
    
    .. (cd ..) the parent directory
    
    
    \\?\ (\\?\c:\windows\win.ini) When a file path is prefixed with \\?\ filename checks are turned off. 
    
    
    
    
    < > : " / \ | Reserved characters. May not be used in filenames.
    
    
    
    Reserved names. These refer to devices eg, 
    
    copy filename con 
    
    which copies a file to the console window.
    
    CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, 
    
    COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, 
    
    LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, and LPT9
    
    CONIN$, CONOUT$, CONERR$
    
    --------------------------------
    
    Maximum path length              260 characters
    Maximum path length (\\?\)      32,767 characters (approx - some rare characters use 2 characters of storage)
    Maximum filename length        255 characters

--------------------------------
**Starting a Program**


See start /? and call /? for help on all three ways.

There are two types of Windows programs - console or non console (these are called GUI even if they don't have one). Console programs attach to the current console or Windows creates a new console. GUI programs have to explicitly create their own windows. 

If a full path isn't given then Windows looks in

 1. The directory from which the application loaded. 
    
 2. The current directory for the parent process. 
    
 3. Windows NT/2000/XP: The 32-bit Windows system directory. Use the
    GetSystemDirectory function to get the path of this directory. The
    name of this directory is System32. 
    
 4. Windows NT/2000/XP: The 16-bit Windows system directory. There is no
    function that obtains the path of this directory, but it is
    searched. The name of this directory is System. 
    
 5. The Windows directory. Use the GetWindowsDirectory function to get
    the path of this directory. 
    
 6. The directories that are listed in the PATH environment variable.

**Specify a program name**
--------------------------

This is the standard way to start a program.

    c:\windows\notepad.exe

In a batch file the batch will wait for the program to exit. When
typed the command prompt does not wait for graphical
programs to exit.

If the program is a batch file control is transferred and the rest of the calling batch file is not executed.

**Use Start command**
--------------------------

`Start` starts programs in non standard ways.

    start "" c:\windows\notepad.exe

`Start` starts a program and does not wait. Console programs start in a new window. Using the `/b` switch forces console programs into the same window, which negates the main purpose of Start.

Start uses the Windows graphical shell - same as typing in WinKey + R (Run dialog). Try 

    start shell:cache

Also program names registered under `HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths` can also be typed without specifying a full path.

Also note the first set of quotes, if any, MUST be the window title.


**Use Call command**
-------------------------

Call is used to start batch files and wait for them to exit and continue the current batch file.


--------------------------------
**Keys**

**Ctrl + C** exits a program without exiting the console window.

For other editing keys type `Doskey /?`

No comments:

Post a Comment