home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: OtherApp / OtherApp.zip / 4os2302.zip / 4OS2.INF (.txt) < prev    next >
OS/2 Help File  |  1999-04-16  |  583KB  |  18,445 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. About 4OS2 Help ΓòÉΓòÉΓòÉ
  3.  
  4.                                       4OS2
  5.  
  6.                             Version 3.02 Help System
  7.  
  8.                 Text by Hardin Brothers, Tom Rawson, and Rex Conn
  9.  
  10. Help Text Copyright 1993 - 1999, JP Software Inc., All Rights Reserved. 
  11.  
  12. Software Copyright 1988 - 1999, Rex Conn and JP Software Inc., All Rights 
  13. Reserved. 
  14.  
  15. 4DOS, 4OS2, and 4NT are JP Software Inc.'s trademarks for its family of 
  16. character-mode command processors.  4DOS and Take Command are registered 
  17. trademarks of JP Software Inc.  JP Software, jpsoft.com, and all JP Software 
  18. designs and logos are also trademarks of JP Software Inc.  Other product and 
  19. company names are trademarks of their respective owners. 
  20.  
  21. [4/99 - 3.02B] 
  22.  
  23.  
  24. ΓòÉΓòÉΓòÉ 2. The Command Line ΓòÉΓòÉΓòÉ
  25.  
  26. 4OS2 displays a [c:\] prompt when it is waiting for you to enter a command. 
  27. (The actual text depends on the current drive and directory as well as your 
  28. PROMPT settings.)  This is called the command line and the prompt is asking you 
  29. to enter a command, an alias or batch file name, or the instructions necessary 
  30. to begin an application program. 
  31.  
  32. This section explains the features that will help you while you are typing in 
  33. commands, and how keystrokes are interpreted when you enter them at the command 
  34. line.  The keystrokes discussed here are the ones normally used by 4OS2.  If 
  35. you prefer using different keystrokes to perform these functions, you can 
  36. assign new ones with key mapping directives in 4OS2.INI. 
  37.  
  38. The command line features documented in this section are: 
  39.  
  40.             Command-Line Editing 
  41.             Command History and Recall 
  42.             Command History Window 
  43.             Command Names and Parameters 
  44.             Filename Completion 
  45.             Automatic Directory Changes 
  46.             Directory History Window 
  47.             Multiple Commands 
  48.             Expanding and Disabling Aliases 
  49.             Command-Line Length Limits 
  50.  
  51.  Additional command-line features are documented under File Selection and Other 
  52.  Features. 
  53.  
  54.  
  55. ΓòÉΓòÉΓòÉ 2.1. Command-Line Editing ΓòÉΓòÉΓòÉ
  56.  
  57. The command line works like a single-line word processor, allowing you to edit 
  58. any part of the command at any time before you press Enter to execute it, or 
  59. Esc to erase it.  The command line you enter can be up to 1023 characters long. 
  60.  
  61. You can use the following editing keys when you are typing a command (the words 
  62. Ctrl and Shift mean to press the Ctrl or Shift key together with the other key 
  63. named): 
  64.  
  65. Cursor Movement Keys: 
  66.  
  67.                        Move the cursor left one character. 
  68.                        Move the cursor right one character. 
  69.         Ctrl           Move the cursor left one word. 
  70.         Ctrl           Move the cursor right one word. 
  71.         Home            Move the cursor to the beginning of the line. 
  72.         End             Move the cursor to the end of the line. 
  73.  
  74.  Insert and Delete: 
  75.  
  76.         Ins             Toggle between insert and overtype mode. 
  77.         Del             Delete the character at the cursor. 
  78.         Backspace       Delete the character to the left of the cursor. 
  79.         Ctrl-L          Delete the word or partial word to the left of the 
  80.                         cursor. 
  81.         Ctrl-R          or Ctrl-Bksp  Delete the word or partial word to the 
  82.                         right of the cursor. 
  83.         Ctrl-Home       Delete from the beginning of the line to the cursor. 
  84.         Ctrl-End        Delete from the cursor to the end of the line. 
  85.         Esc             Delete the entire line. 
  86.  
  87.  Execution: 
  88.  
  89.         Ctrl-C          or Ctrl-Break  Cancel the command line. 
  90.         Enter           Execute the command line. 
  91.  
  92.  Most of the command-line editing capabilities are also available when a 4OS2 
  93.  command prompts you for a line of input.  For example, you can use the 
  94.  command-line editing keys when DESCRIBE prompts for a file description, when 
  95.  INPUT prompts for input from an alias or batch file, or when LIST prompts you 
  96.  for a search string. 
  97.  
  98.  If you want your input at the command line to be in a different color from 
  99.  4OS2's prompts or output, you can use the Display page of the OPTION dialogs, 
  100.  or the InputColors directive in 4OS2.INI. 
  101.  
  102.  4OS2 will prompt for additional command-line text when you include the escape 
  103.  character as the very last character of a typed command line.  The default 
  104.  escape character is the caret [^].  For example: 
  105.  
  106.           [c:\] echo The quick brown fox jumped over the lazy^
  107.           More? sleeping dog. > alphabet
  108.  
  109.  Sometimes you may want to enter one of the command line editing keystrokes on 
  110.  the command line, instead of performing the key's usual action.  For example, 
  111.  suppose you have a program that requires a Ctrl-R character on its command 
  112.  line.  Normally you couldn't type this keystroke at the prompt, because it 
  113.  would be interpreted as a "Delete word right" command. 
  114.  
  115.  To get around this problem, use the special keystroke Alt-255. You enter 
  116.  Alt-255 by holding down the Alt key while you type 255 on the numeric keypad, 
  117.  then releasing the Alt key (you must use the number keys on the numeric pad; 
  118.  the row of keys at the top of your keyboard won't work).  This forces 4OS2 to 
  119.  interpret the next keystroke literally and places it on the command line, 
  120.  ignoring any special meaning it would normally have as a command-line editing 
  121.  or history keystroke.  You can use Alt-255 to suppress the normal meaning of 
  122.  command-line editing keystrokes even if they have been reassigned with key 
  123.  mapping directives in the .INI file, and Alt-255 itself can be reassigned with 
  124.  the CommandEscape directive. 
  125.  
  126.  
  127. ΓòÉΓòÉΓòÉ 2.2. Command History and Recall ΓòÉΓòÉΓòÉ
  128.  
  129. Command History Keys: 
  130.  
  131.                        Recall the previous (or most recent) command, or the 
  132.                         most recent command that matches a partial command 
  133.                         line. 
  134.                        Recall the next (or oldest) command, or the oldest 
  135.                         command that matches a partial command line. 
  136.         F3              Fill in the rest of the command line from the previous 
  137.                         command, beginning at the current cursor position. 
  138.         Ctrl-D          Delete the currently displayed history list entry, 
  139.                         erase the command line, and display the previous 
  140.                         (matching) history list entry. 
  141.         Ctrl-E          Display the last entry in the history list. 
  142.         Ctrl-K          Save the current command line in the history list 
  143.                         without executing it, and then clear the command line. 
  144.         Ctrl-Enter      Copy the current command line to the end of the history 
  145.                         list even it has not been altered, then execute it. 
  146.         @               As the first character in a line:  Do not save the 
  147.                         current line in the history list when it is executed, 
  148.                         and do not store it in the CMDLINE environment 
  149.                         variable. 
  150.  
  151.  Use the  key repeatedly to scan back through the history list.  When the 
  152.  desired command appears, press Enter to execute it again.  After you have 
  153.  found a command, you can edit it before pressing Enter. 
  154.  
  155.  The history list is normally "circular".  If you move to the last command in 
  156.  the list and then press the down arrow one more time, you'll see the first 
  157.  command in the list.  Similarly, if you move to the first command in the list 
  158.  and then press the up arrow one more time, you'll see the last command in the 
  159.  list.  You can disable this feature and make command history recall stop at 
  160.  the beginning or end of the list by turning off the History Wrap selection on 
  161.  the Command Line 1 page of the OPTION dialogs, or setting Histwrap to No in 
  162.  the .INI file. 
  163.  
  164.  You can search the command history list to find a previous command quickly 
  165.  using command completion.  Just enter the first few characters of the command 
  166.  you want to find and press . You only need to enter enough characters to 
  167.  identify the command that you want to find.  If you press the  key a second 
  168.  time, you will see the previous command that matches.  The system will beep if 
  169.  there are no matching commands.  The search process stops as soon as you type 
  170.  one of the editing keys, whether or not the line is changed.  At that point, 
  171.  the line you're viewing becomes the new line to match if you press  again. 
  172.  
  173.  You can specify the size of the command history list with the OPTION command, 
  174.  or with the History directive in the .INI file.  When the list is full, the 
  175.  oldest commands are discarded to make room for new ones.  You can also use the 
  176.  HistMin directive in the .INI file to enable or disable history saves and to 
  177.  specify the shortest command line that will be saved. 
  178.  
  179.  You can prevent any command line from being saved in the history by beginning 
  180.  it with an at sign [@]. 
  181.  
  182.  When you execute a command from the history, that command remains in the 
  183.  history list in its original position.  The command is not copied to the end 
  184.  of the list (unless you modify it).  If you want each command to be copied or 
  185.  moved to the end of the list when it is re- executed, set HistCopy or HistMove 
  186.  to Yes in 4OS2.INI. If you select either of these options, the list entry 
  187.  identified as "current" (the entry from which commands are retrieved when you 
  188.  press ) is also adjusted to refer to the end of the history list after each 
  189.  recalled command is executed. 
  190.  
  191.  Local and Global Command History 
  192.  
  193.  The command history can be stored in either a "local" or "global" list. 
  194.  
  195.  With a local command history list, any changes made to the history will only 
  196.  affect the current copy of 4OS2.  They will not be visible in other shells, or 
  197.  other sessions. 
  198.  
  199.  With a global command history list, all copies of 4OS2 will share the same 
  200.  command history, and any changes made to the history in one copy will affect 
  201.  all other copies.  Global lists are the default for 4OS2. 
  202.  
  203.  You can control the type of command history on the Startup page of the OPTION 
  204.  dialogs, with the LocalHistory directive in the .INI file, or with the /L and 
  205.  /LH options of the START command. 
  206.  
  207.  There is no fixed rule for deciding whether to use a local or global command 
  208.  history list.  Depending on your work style, you may find it most convenient 
  209.  to use one type, or a mixture of types in different sessions or shells.  We 
  210.  recommend that you start with the default setting, then modify it if you find 
  211.  a situation where the default is not convenient. 
  212.  
  213.  If you select a global history list for 4OS2 you can share the history among 
  214.  all copies of 4OS2 running in any session.  When you close all 4OS2 sessions, 
  215.  the memory for the global history list is released, and a new, empty history 
  216.  list is created the next time you start 4OS2. 
  217.  
  218.  If you want the history list to be retained in memory even when no command 
  219.  processor session is running, execute the SHRALIAS command, which loads a 
  220.  program to perform this service for the global command history, directory 
  221.  history, and alias lists. 
  222.  
  223.  Whenever you start a secondary shell which uses a local history list, it 
  224.  inherits a copy of the command history from the previous shell.  However, any 
  225.  changes to the history made in the secondary shell will affect only that 
  226.  shell.  If you want changes made in a secondary shell to affect the previous 
  227.  shell, use a global history list in both shells. 
  228.  
  229.  
  230. ΓòÉΓòÉΓòÉ 2.3. Command History Window ΓòÉΓòÉΓòÉ
  231.  
  232. Command History Window Keys: 
  233.  
  234.         PgUp            (from the command line) Open the command history 
  235.                         window. 
  236.          or PgDn 
  237.                        Scroll the display up one line. 
  238.                        Scroll the display down one line. 
  239.                        Scroll the display left 4 columns. 
  240.                        Scroll the display right 4 columns. 
  241.         PgUp            (inside the window) Scroll the display up one page. 
  242.         PgDn            (inside the window) Scroll the display down one page. 
  243.         Ctrl-PgUp       Go to the beginning of the history list. 
  244.          or Home 
  245.         Ctrl-PgDn       Go to the end of the history list. 
  246.          or End 
  247.         Ctrl-D          Delete the selected line from the history list. 
  248.         Enter           Execute the selected line. 
  249.         Ctrl-Enter      Move the selected line to the command line for editing. 
  250.  
  251.  You can view the command history in a scrollable command history window, and 
  252.  select the command to modify or re-execute from those displayed in the window. 
  253.  To activate the command history window press PgUp or PgDn at the command line. 
  254.  A window will appear in the upper right corner of the screen, with the command 
  255.  you most recently executed marked with a highlight.  (If you just finished 
  256.  re-executing a command from the history, then the next command in sequence 
  257.  will be highlighted.) 
  258.  
  259.  The display is not circular as it is at the prompt; it has a fixed beginning 
  260.  and end.  The Ctrl-D (delete from history) key works within the history window 
  261.  as it does at the command line. 
  262.  
  263.  Once you have selected a command in the history window, press Enter to execute 
  264.  it immediately, or Ctrl-Enter to move the line to the prompt for editing (you 
  265.  cannot edit the line directly in the history window). 
  266.  
  267.  You can bring up a "filtered" history window by typing some characters on the 
  268.  command line, then pressing PgUp or PgDn. Only those commands matching the 
  269.  typed characters will be displayed in the window. 
  270.  
  271.  See Popup Windows for information on customizing window position, size, and 
  272.  color. 
  273.  
  274.  
  275. ΓòÉΓòÉΓòÉ 2.4. Command Names and Parameters ΓòÉΓòÉΓòÉ
  276.  
  277. When you enter a command you type its name at the prompt, followed by a space 
  278. and any parameters for the command.  For example, all of these could be valid 
  279. commands: 
  280.  
  281.       [c:\] dir
  282.       [c:\] copy file1 file2 d:\
  283.       [c:\] f:\util\mapmem /v
  284.       [c:\] "c:\my programs\jp software\take command\tcmdos2.exe" /l
  285.  
  286. The last three commands above include both a command name, and one or more 
  287. parameters.  There are no spaces within the command name (except in quoted file 
  288. names), but there is a space between the command name and any parameeters, and 
  289. there are spaces between the parameters. 
  290.  
  291. Some commands may work when parameters are entered directly after the command 
  292. (without an intervening space, e.g. dir/p), or when several parameters are 
  293. entered without spaces between them (e.g. dir /2/p). A very few older programs 
  294. may even require this approach.  However leaving out spaces in this way is 
  295. usually technically incorrect, and is not recommended as a general practice, as 
  296. it may not work for all commands. 
  297.  
  298. If the command name includes a path, the elements must be separated with 
  299. backslashes (e.g. f:\util\mapmem).  If you are accustomed to Unix syntax where 
  300. forward slashes are used in command paths, and want 4OS2 to recognize this 
  301. approach, you can set UnixPaths to Yes in 4OS2.INI. 
  302.  
  303. For more information on command entry see Multiple Commands and Command-Line 
  304. Length Limits. For details on how 4OS2 handles the various elements it finds on 
  305. the command line see Command Parsing. 
  306.  
  307.  
  308. ΓòÉΓòÉΓòÉ 2.5. Filename Completion ΓòÉΓòÉΓòÉ
  309.  
  310. Filename Completion Keys: 
  311.  
  312.         F8                  Get the previous matching filename. 
  313.          or Shift-Tab 
  314.         F9                  Get the next matching filename. 
  315.          or Tab 
  316.         F10                 Keep the current matching filename and display the 
  317.                             next matching name immediately after the current 
  318.                             one. 
  319.  
  320.  Filename completion can help you by filling in a complete file name on the 
  321.  command line when you only remember or want to type part of the name. For 
  322.  example, if you know the name of a file begins AU but you can't remember the 
  323.  rest of the name, type: 
  324.  
  325.           [c:\] copy au
  326.  
  327.  and then press the Tab key or F9 key.  4OS2 will search the current directory 
  328.  for filenames that begin AU and insert the first one onto the command line in 
  329.  place of the AU that you typed. 
  330.  
  331.  If this is the file that you want, simply complete the command.  If 4OS2 
  332.  didn't find the file that you were looking for, press Tab or F9 again to 
  333.  substitute the next filename that begins with AU.  When there are no more 
  334.  filenames that match your pattern, the system will beep each time you press 
  335.  Tab or F9. 
  336.  
  337.  If you go past the filename that you want, press Shift-Tab or F8 to back up 
  338.  and return to the previous matching filename. After you back up to the first 
  339.  filename, the system will beep each time you press Shift-Tab or F8. 
  340.  
  341.  If you want to enter more than one matching filename on the same command line, 
  342.  press F10 when each desired name appears.  This will keep that name and place 
  343.  the next matching filename after it on the command line.  You can then use Tab 
  344.  (or F9), Shift-Tab (or F8), and F10 to move through the remaining matching 
  345.  files. 
  346.  
  347.  The pattern you use for matching may contain any valid filename characters, as 
  348.  well as wildcard characters and extended wildcards.  For example, you can copy 
  349.  the first matching .TXT file by typing 
  350.  
  351.           [c:\] copy *.txt
  352.  
  353.  and then pressing Tab. 
  354.  
  355.  If you don't specify part of a filename before pressing Tab, the command 
  356.  processor will match all files.  For example, if you enter the above command 
  357.  as "COPY", without the "*.TXT", and then press Tab, the first filename in the 
  358.  current directory is displayed.  Each time you press Tab or F9 after that, 
  359.  another name from the current directory is displayed, until all filenames have 
  360.  been displayed. 
  361.  
  362.  If you type a filename without an extension, 4OS2 will add *.* to the name (* 
  363.  on HPFS drives).  It will also place a "*" after a partial extension. If you 
  364.  are typing a group of file names in an include list, the part of the include 
  365.  list at the cursor will be used as the pattern to match. 
  366.  
  367.  When filename completion is used at the start of the command line, it will 
  368.  only match directories, executable files, and files with executable 
  369.  extensions, since these are the only file names that it makes sense to use at 
  370.  the start of a command.  If a directory is found, a "\" will be appended to it 
  371.  to enable an automatic directory change. 
  372.  
  373.  Appending Backslashes to Directory Names 
  374.  
  375.  If you set the AppendToDir .INI directive, or the "Add \ ..." option on the 
  376.  Command Line 1 page of the OPTION dialogs, 4OS2 will add a trailing backslash 
  377.  [\] to all directory names.  This feature can be especially handy if you use 
  378.  filename completion to specify files that are not in the current directory -- 
  379.  a succession of Tab (or F9) and F10 keystrokes can build a complete path to 
  380.  the file you want to work with. 
  381.  
  382.  The following example shows the use of this technique to edit the file 
  383.  C:\DATA\FINANCE\MAPS.DAT.  The lines which include <F9> show where F9 (or Tab) 
  384.  is pressed; the other lines show how the command line appears after the 
  385.  previous F9 or Tab (the example is displayed on several lines here, but all 
  386.  appears at a single command prompt when you actually perform the steps): 
  387.  
  388.           1    [c:\> edit \da <F9>
  389.           2    [c:\> edit \data\
  390.           3    [c:\> edit \data\f <F9>
  391.           4    [c:\> edit \data\frank.doc <F9>
  392.           5    [c:\> edit \data\finance\
  393.           6    [c:\> edit \data\finance\map <F9>
  394.           7    [c:\> edit \data\finance\maps.dat
  395.  
  396.  Note that F9 was pressed twice in succession on lines 3 and 4, because the 
  397.  file name displayed on line 3 was not what was needed we were looking for the 
  398.  FINANCE directory, which came up the second time F9 was pressed.  In this 
  399.  example, filename completion saves about half the keystrokes that would be 
  400.  required to type the name in full.  If you are using long file or directory 
  401.  names, the savings can be much greater. 
  402.  
  403.  Customizing Filename Completion 
  404.  
  405.  You can customize filename completion for any internal or external command or 
  406.  alias.  This allows the command processor to display filenames intelligently 
  407.  based on the command you are entering.  For example, you might want to see 
  408.  only .TXT files when you use filename completion in the EDIT command. 
  409.  
  410.  To customize filename completion you can use the Command Line 1 page of the 
  411.  OPTION dialogs, or set the FileCompletion directive manually in your .INI 
  412.  file.  You can also use the FILECOMPLETION environment variable.  If you use 
  413.  both, the environment variable will override the settings in your .INI file. 
  414.  You may find it useful to use the environment variable for experimenting, then 
  415.  create permanent settings with the OPTION command or the FileCompletion 
  416.  directive. 
  417.  
  418.  The format for both the environment variable and the .INI file is: 
  419.  
  420.           cmd1:ext1 ext2 ...; cmd2: ...
  421.  
  422.  where "cmd" is a command name and "ext" is a file extension (which may include 
  423.  wildcards) or one of the following file types: 
  424.  
  425.           DIRS       Directories
  426.           RDONLY     Read-only files
  427.           HIDDEN     Hidden files
  428.           SYSTEM     System files
  429.           ARCHIVE    Files modified since the last backup
  430.  
  431.  The command name is the internal command, alias command, or executable file 
  432.  name (without a path).  For example, to have file completion return only 
  433.  directories for the CD command and only .C and .ASM files for B (the Boxer 
  434.  editor), you would use this setting for filename completion in the OPTION 
  435.  dialogs: 
  436.  
  437.           FileCompletion=cd:dirs; b:c asm
  438.  
  439.  To set the same values using the environment variable, you would use this 
  440.  line: 
  441.  
  442.           [c:\] set filecompletion=cd:dirs; b:c asm
  443.  
  444.  With this setting in effect, if you type "CD " and then pressed Tab, the 
  445.  command processor will return only directories, not files.  If you type "B " 
  446.  and press Tab, you will see only names of .C and .ASM files. 
  447.  
  448.  4OS2 does not check your command line for aliases before matching the commands 
  449.  for customized file completion.  Instead, they ignore any path or file 
  450.  extension information in the first word of the command, and then search the 
  451.  FILECOMPLETION environment variable and the FileCompletion INI directive to 
  452.  find a match that will limit the files selected for filename completion. 
  453.  
  454.  Filename Completion Window 
  455.  
  456.  You can also view filenames in a filename completion window and select the 
  457.  file you want to work with.  To activate the window, press F7 or Ctrl-Tab at 
  458.  the command line.  You will see a window in the upper-right corner of the 
  459.  screen, with a sorted list of files that match any partial filename you have 
  460.  entered on the command line.  If you haven't yet entered a file name, the 
  461.  window will contain the name of all files in the current directory.  You can 
  462.  search for a name by typing the first few characters. (Ctrl-Tab will work only 
  463.  if your keyboard and keyboard driver support it.  If it does not work on your 
  464.  system, use F7 instead.) 
  465.  
  466.  See Popup Windows for information on customizing window position, size, and 
  467.  color. 
  468.  
  469.  Filename Completion Window Keys: 
  470.  
  471.         F7                  (from the command line)  Open the filename 
  472.                             completion window. 
  473.          or Ctrl-Tab 
  474.                            Scroll the display up one line. 
  475.                            Scroll the display down one line. 
  476.                            Scroll the display left 4 columns. 
  477.                            Scroll the display right 4 columns. 
  478.         PgUp                Scroll the display up one page. 
  479.         PgDn                Scroll the display down one page. 
  480.         Ctrl-PgUp           Go to the beginning of the filename list. 
  481.          or Home 
  482.         Ctrl-PgDn           Go to the end of the filename list. 
  483.          or End 
  484.         Enter               Insert the selected filename into the command line. 
  485.  
  486.  
  487. ΓòÉΓòÉΓòÉ 2.6. Automatic Directory Changes ΓòÉΓòÉΓòÉ
  488.  
  489. The automatic directory change feature lets you change directories quickly from 
  490. the command prompt, without entering an explicit CD or CDD command.  To do so, 
  491. simply type the name of the directory you want to change to at the prompt, with 
  492. a backslash [\] at the end.  For example: 
  493.  
  494.         [c:\] 4os2\
  495.         [c:\4os2]
  496.  
  497. This can make directory changes very simple when it is combined with Extended 
  498. Directory Searches or CDPATH.  If you have enabled either of those features, 
  499. the command processor will use them in searching for any directory you change 
  500. to with an automatic directory change. 
  501.  
  502. For example, suppose Extended Directory Searches are enabled, and the directory 
  503. WIN exists on drive E:.  You can change to this directory with a single word on 
  504. the command line: 
  505.  
  506.         [c:\4os2] win\
  507.         [e:\win]
  508.  
  509. (Depending on the way Extended Directory Searches are configured, and the 
  510. number of subdirectories on your disk whose names contain the string WIN, when 
  511. you execute such a command you may see an immediate change as shown above, or a 
  512. popup window which contains a list of subdirectories named WIN to choose from.) 
  513.  
  514. The text before the backslash can include a drive letter, a full path, a 
  515. partial path, or a UNC name.  Commands like "....\" can be used to move up the 
  516. directory tree quickly (see Extended Parent Directory Names).  Automatic 
  517. directory changes save the current directory, so it can be recalled with a "CDD 
  518. -" or "CD -" command.  For example, any of the following are valid automatic 
  519. directory change entries: 
  520.  
  521.         [c:\] d:\data\finance\
  522.         [c:\] archives\
  523.         [c:\] ...\util\os2\
  524.         [c:\] \\server\vol1\george\
  525.  
  526. The first and last examples change to the named directory.  The second changes 
  527. to the ARCHIVES subdirectory of the current directory, and the third changes to 
  528. the UTIL\OS2 subdirectory of the directory which is two levels "up" from the 
  529. current directory in the tree. 
  530.  
  531.  
  532. ΓòÉΓòÉΓòÉ 2.7. ┬áDirectory History Window ΓòÉΓòÉΓòÉ
  533.  
  534. Directory History Window Keys: 
  535.  
  536.         Ctrl-PgUp       (from the command line) Open the directory history 
  537.                         window. 
  538.          or Ctrl-PgDn 
  539.                        Scroll the display up one line. 
  540.                        Scroll the display down one line. 
  541.                        Scroll the display left 4 columns. 
  542.                        Scroll the display right 4 columns. 
  543.         PgUp            Scroll the display up one page. 
  544.         PgDn            Scroll the display down one page. 
  545.         Ctrl-PgUp       Go to the beginning of the directory list. 
  546.          or Home 
  547.         Ctrl-PgDn       Go to the end of the directory list. 
  548.          or End 
  549.         Ctrl-D          Delete the selected line from the directory list. 
  550.         Enter           Change to the selected drive and directory. 
  551.         Ctrl-Enter      Move the selected line to the command line for editing. 
  552.  
  553.  The current directory is recorded automatically in the directory history list 
  554.  just before each change to a new directory or drive. 
  555.  
  556.  You can view the directory history from a directory history window and change 
  557.  to any drive and directory on the list.  To activate the directory history 
  558.  window, press Ctrl-PgUp or Ctrl-PgDn at the command line.  You can then select 
  559.  a new directory with the Enter key. 
  560.  
  561.  If the directory history list becomes full, old entries are deleted to make 
  562.  room for new ones.  You can set the size of the list with the DirHistory 
  563.  directive in the .INI file.  In order to conserve space, each directory name 
  564.  is recorded just once in the directory history, even if you move into and out 
  565.  of that directory several times.  The directory history can be stored in 
  566.  either a "local" or "global" list. (See Local and Global Directory History.) 
  567.  
  568.  When you switch directories the original directory is saved in the directory 
  569.  history list, regardless of whether you change directories at the command 
  570.  line, from within a batch file, or from within an alias.  However, directory 
  571.  changes made by external directory navigation utilities or other external 
  572.  programs are not recorded by 4OS2. 
  573.  
  574.  See Popup Windows for information on customizing window position, size, and 
  575.  color. 
  576.  
  577.  
  578. ΓòÉΓòÉΓòÉ 2.7.1. Local and Global Directory History ΓòÉΓòÉΓòÉ
  579.  
  580. The directory history can be stored in either a "local" or "global" list. 
  581.  
  582. With a local directory history list, any changes made to the list will only 
  583. affect the current copy of the command processor.  They will not be visible in 
  584. other shells, or other sessions. 
  585.  
  586. With a global list, all copies of the command processor will share the same 
  587. directory history, and any changes made to the list in one copy will affect all 
  588. other copies. 
  589.  
  590. You can control the type of directory history list on the Startup page of the 
  591. OPTION dialogs, with the LocalDirHistory directive in 4OS2.INI, with the /L and 
  592. /LD startup options, and with the /L and /LD options of the START command. 
  593.  
  594. There is no fixed rule for deciding whether to use a local or global directory 
  595. history list.  Depending on your work style, you may find it most convenient to 
  596. use one type, or a mixture of types in different sessions or shells.  We 
  597. recommend that you start with the default setting, then modify it if you find a 
  598. situation where the default is not convenient. 
  599.  
  600. If you select a global directory list, you can share the list among all copies 
  601. of the command processor running in any session.  When you close all 4OS2 
  602. sessions, the memory for the global directory history list is released, and a 
  603. new, empty list is created the next time you start 4OS2. 
  604.  
  605. If you want the list to be retained in memory even when no command processor 
  606. session is running, you need to execute the SHRALIAS command, which loads a 
  607. program to perform this service for the global command history, directory 
  608. history, and alias lists. 
  609.  
  610. Whenever you start a secondary shell which uses a local directory history list, 
  611. it inherits a copy of the directory history from the previous shell. However, 
  612. any changes to the list made in the secondary shell will affect only that 
  613. shell.  If you want changes made in a secondary shell to affect the previous 
  614. shell, use a global directory history list in both shells. 
  615.  
  616.  
  617. ΓòÉΓòÉΓòÉ 2.8. Multiple Commands ΓòÉΓòÉΓòÉ
  618.  
  619. You can type several commands on the same command line, separated by an 
  620. ampersand [&].  For example, if you know you want to copy all of your .TXT 
  621. files to drive A: and then run CHKDSK to be sure that drive A's file structure 
  622. is in good shape, you could enter the following command: 
  623.  
  624.         [c:\] copy *.txt a: & chkdsk a:
  625.  
  626. You may put as many commands on the command line as you wish, as long as the 
  627. total length of the command line does not exceed 1023 characters. 
  628.  
  629. You can use multiple commands in alias definitions and batch files as well as 
  630. from the command line. 
  631.  
  632. If you don't like using the default command separator, you can pick another 
  633. character using the SETDOS /C command or the CommandSep directive in the .INI 
  634. file.  If you plan to share aliases or batch files between 4OS2 and 4DOS, 4NT, 
  635. or Take Command, see Special Character Compatibility for details about choosing 
  636. compatible command separators for two or more products. 
  637.  
  638.  
  639. ΓòÉΓòÉΓòÉ 2.9. Expanding and Disabling Aliases ΓòÉΓòÉΓòÉ
  640.  
  641. A few command line options are specifically related to aliases, and are 
  642. documented briefly here for completeness. 
  643.  
  644. You can expand an alias on the command line and view or edit the results by 
  645. pressing Ctrl-F before the command is executed.  Doing so is especially useful 
  646. when you are developing and debugging a complex alias or if you want to make 
  647. sure that an alias that you may have forgotten won't change the intent of your 
  648. command. 
  649.  
  650. At times, you may want to temporarily disable an alias that you have defined. 
  651. To do so, precede the command with an asterisk [*].  For example, if you have 
  652. an alias for DIR which changes the display format, you can use the following 
  653. command to bypass the alias and display the directory in the standard format: 
  654.  
  655.         [c:\] *dir
  656.  
  657.  
  658. ΓòÉΓòÉΓòÉ 2.10. Command Line Help ΓòÉΓòÉΓòÉ
  659.  
  660. You can start the online help system at the command line by entering HELP or 
  661. HELP plus a topic, or by pressing the F1 key at any time. 
  662.  
  663. If you have already typed part or all of a command on the line, the help system 
  664. will provide "context-sensitive" help by using the first word on the line as a 
  665. help topic.  If it's a valid topic, you will see help for that topic 
  666. automatically; if not, you will see a table of contents and you can then pick 
  667. the topic you want.  For example, if you press F1 after entering each of the 
  668. command lines shown below you will get the display indicated: 
  669.  
  670.         [c:\]                  Topic list / table of contents
  671.         [c:\] copy *.* a:      Help on COPY
  672.         [c:\] c:\util\map      Topic list / table of contents
  673.  
  674. For quick help you can type the name of any internal command at the prompt, 
  675. followed by a slash and a question mark [/?] like this: 
  676.  
  677.         copy /?
  678.  
  679. This will show you help for the command in a "quick-reference" style (the 
  680. output can be redirected).  The /? option may not work correctly if you have 
  681. redefined how the command operates with an alias.  In this case you may need to 
  682. add an asterisk to the beginning of the command to disable alias processing: 
  683.  
  684.         alias copy copy /r
  685.         *copy /?
  686.  
  687. /? will only access the help system when you use it with an internal command. 
  688. If you use it with an external command name, the external command will be 
  689. executed and will interpret the /? parameter according to its own rules.  Some 
  690. external commands, including some external utility programs, do display help 
  691. when run with a /? parameter, but this a characteristic of these commands and 
  692. does not depend on the command processor.  Many other external commands do not 
  693. have this feature. 
  694.  
  695.  
  696. ΓòÉΓòÉΓòÉ 2.11. Command-Line Length Limits ΓòÉΓòÉΓòÉ
  697.  
  698. When you first enter a command at the prompt or in an alias or batch file, it 
  699. can be up to 1,023 characters long. 
  700.  
  701. As 4OS2 scans the command line and substitutes the contents of aliases and 
  702. environment variables for their names, the line usually gets longer.  This 
  703. expanded line is stored in an internal buffer which allows each individual 
  704. command to grow to 1,023 characters during the expansion process.  In addition, 
  705. if you have multiple commands on a single line, during expansion the entire 
  706. line can grow to as much as 2,047 characters.  If your use of aliases or 
  707. environment variables causes the command line to exceed either of these limits 
  708. as it is expanded, you will see a "Command line too long" error and the 
  709. remainder of the line will not be executed. 
  710.  
  711.  
  712. ΓòÉΓòÉΓòÉ 3. File Selection ΓòÉΓòÉΓòÉ
  713.  
  714. Most internal commands (like COPY, DIR, etc.) work on a file or a group of 
  715. files.  Besides typing the exact name of the file you want to work with, you 
  716. can use several shorthand forms for naming or selecting files and the 
  717. applications associated with them. 
  718.  
  719. Most of the features explained in this section apply to 4OS2 commands only, and 
  720. can not be used to pass file names to external programs unless those programs 
  721. were specifically written to support these features. 
  722.  
  723. The file selection features are: 
  724.  
  725.             Extended Parent Directory Names 
  726.             Wildcards 
  727.             Date, Time, and Size Ranges 
  728.             File Exclusion Ranges 
  729.             Multiple Filenames 
  730.             Include Lists 
  731.             Executable Extensions 
  732.  
  733.  
  734. ΓòÉΓòÉΓòÉ 3.1. Extended Parent Directory Names ΓòÉΓòÉΓòÉ
  735.  
  736. 4OS2 allows you to extend the traditional syntax for naming the parent 
  737. directory, by adding additional [.] characters.  Each additional [.] represents 
  738. an additional directory level above the current directory.  For example, 
  739. .\FILE.DAT refers to a file in the current directory, ..\FILE.DAT refers to a 
  740. file one level up (in the parent directory), and ...\FILE.DAT refers to a file 
  741. two levels up (in the parent of the parent directory).  If you are in the 
  742. C:\DATA\FINANCE\JANUARY directory and want to copy the file LETTERS.DAT from 
  743. the directory C:\DATA to drive A: 
  744.  
  745.         [C:\DATA\FINANCE\JANUARY] copy ...\LETTERS.DAT A:
  746.  
  747.  
  748. ΓòÉΓòÉΓòÉ 3.2. Wildcards ΓòÉΓòÉΓòÉ
  749.  
  750. Wildcards let you specify a file or group of files by typing a partial 
  751. filename.  The appropriate directory is scanned to find all of the files that 
  752. match the partial name you have specified. 
  753.  
  754. Wildcards are usually used to specify which files should be processed by a 
  755. command.  If you need to specify which files should not be processed see File 
  756. Exclusion Ranges (for internal commands), or EXCEPT (for external commands). 
  757.  
  758. Most internal commands accept filenames with wildcards anywhere that a full 
  759. filename can be used.  There are two wildcard characters, the asterisk [*] and 
  760. the question mark [?], plus a special method of specifying a range of 
  761. permissible characters. 
  762.  
  763. An asterisk [*] in a filename means "any zero or more characters in this 
  764. position."  For example, this command will display a list of all files in the 
  765. current directory: 
  766.  
  767.         [c:\] dir *.*
  768.  
  769. If you want to see all of the files with a .TXT extension, you could type this: 
  770.  
  771.         [c:\] dir *.txt
  772.  
  773. If you know that the file you are looking for has a base name that begins with 
  774. ST and an extension that begins with .D, you can find it this way.  Filenames 
  775. such as STATE.DAT, STEVEN.DOC, and ST.D will all be displayed: 
  776.  
  777.         [c:\] dir st*.d*
  778.  
  779. With 4OS2, you can also use the asterisk to match filenames with specific 
  780. letters somewhere inside the name.  The following example will display any file 
  781. with a .TXT extension that has the letters AM together anywhere inside its base 
  782. name.  It will, for example, display AMPLE.TXT, STAMP.TXT, CLAM.TXT, and AM.TXT 
  783.  
  784.         [c:\] dir *am*.txt
  785.  
  786. A question mark [?] matches any single filename character.  You can put the 
  787. question mark anywhere in a filename and use as many question marks as you 
  788. need.  The following example will display files with names like LETTER.DOC and 
  789. LATTER.DAT, and LITTER.DU : 
  790.  
  791.         [c:\] dir l?tter.d??
  792.  
  793. The use of an asterisk wildcard before other characters, and of the character 
  794. ranges discussed below, are enhancements to the standard wildcard syntax, and 
  795. may not work properly with software other than 4OS2 and Take Command. 
  796.  
  797. "Extra" question marks in your wildcard specification are ignored if the file 
  798. name is shorter than the wildcard specification.  For example, if you have 
  799. files called LETTER.DOC, LETTER1.DOC, and LETTERA.DOC, this command will 
  800. display all three names: 
  801.  
  802.         [c:\] dir letter?.doc
  803.  
  804. The file LETTER.DOC is included in the display because the "extra" question 
  805. mark at the end of "LETTER? " is ignored when matching the shorter name LETTER. 
  806.  
  807. In some cases, the question mark wildcard may be too general.  You can also 
  808. specify what characters you want to accept (or exclude) in a particular 
  809. position in the filename by using square brackets. Inside the brackets, you can 
  810. put the individual acceptable characters or ranges of characters.  For example, 
  811. if you wanted to match LETTER0.DOC through LETTER9.DOC, you could use this 
  812. command: 
  813.  
  814.         [c:\] dir letter[0-9].doc
  815.  
  816. You could find all files that have a vowel as the second letter in their name 
  817. this way.  This example also demonstrates how to mix the wildcard characters: 
  818.  
  819.         [c:\] dir ?[aeiouy]*.*
  820.  
  821. You can exclude a group of characters or a range of characters by using an 
  822. exclamation mark [!] as the first character inside the brackets.  This example 
  823. displays all filenames that are at least 2 characters long except those which 
  824. have a vowel as the second letter in their names: 
  825.  
  826.         [c:\] dir ?[!aeiouy]*.*
  827.  
  828. The next example, which selects files such as AIP, BIP, and TIP but not NIP, 
  829. demonstrates how you can use multiple ranges inside the brackets.  It will 
  830. accept a file that begins with an A, B, C, D, T, U, or V: 
  831.  
  832.         [c:\] dir [a-dt-v]ip
  833.  
  834. You may use a question mark character inside the brackets, but its meaning is 
  835. slightly different than a normal (unbracketed) question mark wildcard.  A 
  836. normal question mark wildcard matches any character, but will be ignored when 
  837. matching a name shorter than the wildcard specification, as described above.  A 
  838. question mark inside brackets will match any character, but will not be 
  839. discarded when matching shorter filenames.  For example: 
  840.  
  841.         [c:\] dir letter[?].doc
  842.  
  843. will display LETTER1.DOC and LETTERA.DOC, but not LETTER.DOC. 
  844.  
  845. A pair of brackets with no characters between them [], or an exclamation point 
  846. and question mark together [!?], will match only if there is no character in 
  847. that position.  For example, 
  848.  
  849.         [c:\] dir letter[].doc
  850.  
  851. will not display LETTER1.DOC or LETTERA.DOC, but will display LETTER.DOC.  This 
  852. is most useful for commands like 
  853.  
  854.         [c:\] dir /I"[]" *.btm
  855.  
  856. which will display a list of all .BTM files which don't have a description, 
  857. because the empty brackets match only an empty description string (DIR /I 
  858. selects files to display based on their descriptions). 
  859.  
  860. You can repeat any of the wildcard characters in any combination you desire 
  861. within a single file name.  For example, the following command lists all files 
  862. which have an A, B, or C as the third character, followed by zero or more 
  863. additional characters, followed by a D, E, or F, followed optionally by some 
  864. additional characters, and with an extension beginning with P or Q.  You 
  865. probably won't need to do anything this complex, but we've included it to show 
  866. you the flexibility of extended wildcards: 
  867.  
  868.         [c:\] dir ??[abc]*[def]*.[pq]*
  869.  
  870. You can also use the square bracket wildcard syntax to work around a conflict 
  871. between long filenames containing semicolons [;], and the use of a semicolon to 
  872. indicate an include list. For example, if you have a file on an HPFS drive 
  873. named C:\DATA\LETTER1;V2 and you enter this command: 
  874.  
  875.         [c:\] del \data\letter1;v2
  876.  
  877. you will not get the results you expect.  Instead of deleting the named file, 
  878. 4OS2 will attempt to delete LETTER1 and then V2, because the semicolon 
  879. indicates an include list.  However if you use square brackets around the 
  880. semicolon it will be interpreted as a filename character, and not as an include 
  881. list separator.  For example, this command would delete the file named above: 
  882.  
  883.         [c:\] del \data\letter1[;]v2
  884.  
  885.  
  886. ΓòÉΓòÉΓòÉ 3.3. Ranges ΓòÉΓòÉΓòÉ
  887.  
  888.             Date, Time, and Size Ranges 
  889.             File Exclusion Ranges 
  890.  
  891.  
  892. ΓòÉΓòÉΓòÉ 3.3.1. Date, Time, and Size Ranges ΓòÉΓòÉΓòÉ
  893.  
  894. Most internal commands which accept wildcards also allow date, time, and size 
  895. ranges to further define the files that you wish to work with.  4OS2 will 
  896. examine each file's size and timestamp (a record of when the file was created, 
  897. last modified, or last accessed) to determine if the file meets the range 
  898. criteria you have specified. 
  899.  
  900. (4OS2 also supports File Exclusion Ranges to exclude files from a command. 
  901. These are similar to date, time, and size ranges, but have a slightly different 
  902. purpose and therefore are documented separately.) 
  903.  
  904. A range begins with the switch character (/), followed by a left square bracket 
  905. ("[") and a character that specifies the range type:  "s" for a size range, "d" 
  906. for a date range, or "t" for a time range.  The "s", "d", or "t" is followed by 
  907. a start value, and an optional comma and end value.  The range ends with a 
  908. right square bracket ("]").  For example, to select files between 100 and 200 
  909. bytes long you could use the range /[s100,200]. 
  910.  
  911. All ranges are inclusive.  For example, a size range which selects files from 
  912. 10,000 to 20,000 bytes long will match files that are exactly 10,000 bytes and 
  913. 20,000 bytes long, as well as all sizes in between; a date range that selects 
  914. files last modified between 10-27-97 and 10-30-97 will include files modified 
  915. on each of those dates, and on the two days in between. 
  916.  
  917. If you reverse range start and end values the command processor will recognize 
  918. the reversal, and will use the second (lower) value as the start point of the 
  919. range and the first (higher) value as its end point.   For example, the range 
  920. above for files between 100 and 200 bytes long could also be entered as 
  921. /[s200,100]. 
  922.  
  923. See the individual range types for details on specifying ranges: 
  924.  
  925.             Date Ranges 
  926.             Time Ranges 
  927.             Size Ranges 
  928.  
  929.  Using Ranges 
  930.  
  931.  If you combine two types of ranges, a file must satisfy both ranges to be 
  932.  included.  For example, /[d2-8-97,2-9-97] /[s1024,2048] means files last 
  933.  modified between February 8 and February 9, 1997, which are also between 1,024 
  934.  and 2,048 bytes long. 
  935.  
  936.  When you use a date, time, or size range in a command, it should immediately 
  937.  follow the command name.  Unlike some command switches which apply to only 
  938.  part of the command line, the range usually applies to all file names 
  939.  specified for the command.  Any exceptions are noted in the descriptions of 
  940.  individual commands. 
  941.  
  942.  For example, to get a directory of all the *.C files dated October 1, 1997, 
  943.  you could use this command: 
  944.  
  945.           [c:\] dir /[d10-1-97,+0] *.c
  946.  
  947.  To delete all of the 0-byte files on your hard disk, you could use this 
  948.  command: 
  949.  
  950.           [c:\] del /[s0,0] *.* /s
  951.  
  952.  And to copy all of the non-zero byte files that you changed yesterday or today 
  953.  to your floppy disk, you can use this command: 
  954.  
  955.           [c:\] copy /[d-1] /[s1] *.* a:
  956.  
  957.  The HPFS file system maintains 3 sets of dates and times for each file: 
  958.  creation, last access, and last write.  By default, date and time ranges work 
  959.  with the last write time stamp. You can use the "last access" (a) or "created" 
  960.  (c) time stamp in a date or time range with the syntax: 
  961.  
  962.           /[da...]  or  /[dc...]  or  /[ta...]  or  /[tc...]
  963.  
  964.  For example, to select files that were last accessed yesterday or today: 
  965.  
  966.           /[da-1]
  967.  
  968.  Date, time, and size ranges can be used with the ATTRIB, COPY, DEL, DESCRIBE, 
  969.  DIR, EXCEPT, FFIND, FOR, LIST, MOVE, RD, REN, SELECT, and TYPE commands.  They 
  970.  cannot be used with filename completion or in filename arguments for variable 
  971.  functions. 
  972.  
  973.  
  974. ΓòÉΓòÉΓòÉ 3.3.1.1. Date Ranges ΓòÉΓòÉΓòÉ
  975.  
  976. Date ranges select files that were created or last modified at any time between 
  977. the two dates.  For example, /[d12-1-97,12-5-97] selects files that were last 
  978. modified between December 1, 1997, and December 5, 1997. 
  979.  
  980. The time for the starting date defaults to 00:00:00 and the time for the ending 
  981. date defaults to 23:59:59.  You can alter these defaults, if you wish, by 
  982. including a start and stop time inside the date range.  The time is separated 
  983. from the date with an at sign [@].  For example, the range 
  984. /[d7-1-97@8:00a,7-3-97@6:00p] selects files that were modified at any time 
  985. between 8:00 am on July 1, 1997 and 6:00 pm on July 3, 1997.  If you prefer, 
  986. you can specify the times in 24-hour format (e.g., @18:00 for the end time in 
  987. the previous example). 
  988.  
  989. If you omit the second argument in a date range, 4OS2 substitutes the current 
  990. date and time.  For example, /[d10-1-97] selects files dated between October 1, 
  991. 1997 and today. 
  992.  
  993. You can use an offset value for either the beginning or ending date, or both. 
  994. An offset begins with a plus sign [+] or a minus sign [-] followed by an 
  995. integer.  If you use an offset for the second value, it is calculated relative 
  996. to the first.  If you use an offset for the first (or only) value, the current 
  997. date is used as the basis for calculation.  For example: 
  998.  
  999.         Specification       Selects Files
  1000.  
  1001.         /[d10-27-97,+3]     modified between 10-27-97 and 10-30-97
  1002.         /[d10-27-97,-3]     modified between 10-24-97 and 10-27-97
  1003.         /[d-0]              modified today (from today minus zero days, to today)
  1004.         /[d-1]              modified yesterday or today (from today minus one day,
  1005.                             to today)
  1006.         /[d-1,+0]           modified yesterday (from today minus one day, to zero
  1007.                             days after that)
  1008.  
  1009. As a shorthand way of specifying files modified today, you can also use /[d]; 
  1010. this has the same effect as the /[d-0] example shown above. 
  1011.  
  1012. To select files last modified n days ago or earlier, use /[dn,1/1/80].  For 
  1013. example, to get a directory of all files last modified 3 days or more before 
  1014. today (i.e., those files not modified within the last 3 days), you could use 
  1015. this command: 
  1016.  
  1017.         [c:\] dir /[d-3,1/1/80]
  1018.  
  1019. This reversed date range (with the later date given first) will be handled 
  1020. correctly by 4OS2.  It takes advantage of the facts that an offset in the start 
  1021. date is relative to today, and that the base or "zero" point for PC file dates 
  1022. is January 1, 1980. 
  1023.  
  1024. You cannot use offsets in the time portion of a date range (the part after an 
  1025. at sign), but you can combine a time with a date offset.  For example, 
  1026. /[d12-8-97@12:00,+2@12:00] selects files that were last modified between noon 
  1027. on December 8 and noon on December 10, 1997.  Similarly, /[d-2@15:00,+1] 
  1028. selects files last modified between 3:00 pm the day before yesterday and the 
  1029. end of the day one day after that, i.e., yesterday.  The second time defaults 
  1030. to the end of the day because no time is given. 
  1031.  
  1032. The HPFS file system maintains 3 sets of dates and times for each file: 
  1033. creation, last access, and last write.  By default, date ranges work with the 
  1034. last write date/time stamp.  You can use the "last access" (a) or "created" (c) 
  1035. date/time stamp in a date range with the syntax: 
  1036.  
  1037.         /[da...]  or  /[dc...]
  1038.  
  1039. For example, to select files that were last accessed yesterday or today: 
  1040.  
  1041.         /[da-1]
  1042.  
  1043.  
  1044. ΓòÉΓòÉΓòÉ 3.3.1.2. Time Ranges ΓòÉΓòÉΓòÉ
  1045.  
  1046. A time range specifies a file modification time without reference to the date. 
  1047. For example, to select files modified between noon and 2:00 pm on any date, use 
  1048. /[t12:00p,2:00p].  The times in a time range can either be in 12-hour format, 
  1049. with a trailing "a" for AM or "p" for PM, or in 24-hour format. 
  1050.  
  1051. If you omit the second argument in a time range, you will select files that 
  1052. were modified between the first time and the current time, on any date.  You 
  1053. can also use offsets, beginning with a plus sign [+] or a minus sign [-] for 
  1054. either or both of the arguments in a time range.  The offset values are 
  1055. interpreted as minutes.  Some examples: 
  1056.  
  1057.         Specification       Selects Files
  1058.  
  1059.         /[t12:00p,+120]     modified between noon and 2:00 PM on any date
  1060.         /[t-120,+120]       modified between two hours ago and the
  1061.                             current time on any date
  1062.         /[t0:00,11:59]      modified in the morning on any date
  1063. The HPFS file system maintains 3 sets of date and time for each file: creation, 
  1064. last access, and last write.  By default, time ranges work with the last write 
  1065. time stamp.  You can use the "last access" (a) or "created" (c) time stamp in a 
  1066. time range with the syntax: 
  1067.  
  1068.         /[ta...]  or  /[tc...]
  1069.  
  1070.  
  1071. ΓòÉΓòÉΓòÉ 3.3.1.3. Size Ranges ΓòÉΓòÉΓòÉ
  1072.  
  1073. Size ranges simply select files whose size is between the limits given.  For 
  1074. example, /[s10000,20000] selects files between 10,000 and 20,000 bytes long. 
  1075.  
  1076. Either or both values in a size range can end with "k" to indicate thousands of 
  1077. bytes, "K" to indicate kilobytes (1,024 bytes), "m" to indicate millions of 
  1078. bytes, or "M" to indicate megabytes (1,048,576 bytes).  For example, the range 
  1079. above could be rewritten as /[s10k,20k]. 
  1080.  
  1081. All ranges are inclusive.  Both examples above will match files that are 
  1082. exactly 10,000 bytes and 20,000 bytes long, as well as all sizes in between. 
  1083.  
  1084. The second argument of a size range is optional.  If you use a single argument, 
  1085. like /[s10k], you will select files of that size or larger.  You can also 
  1086. precede the second argument with a plus sign [+]; when you do, it is added to 
  1087. the first value to determine the largest file size to include in the search. 
  1088. For example,  /[s10k,+1k] select files from 10,000 through 11,000 bytes in 
  1089. size. 
  1090.  
  1091. Some further examples of size ranges: 
  1092.  
  1093.         Specification       Selects Files
  1094.  
  1095.         /[s0,0]             of length zero (empty)
  1096.         /[s1M]              1 megabyte or more in length
  1097.         /[s10k,+200]        between 10,000 and 10,200 bytes
  1098.  
  1099.  
  1100. ΓòÉΓòÉΓòÉ 3.3.2. File Exclusion Ranges ΓòÉΓòÉΓòÉ
  1101.  
  1102. Most internal commands which accept wildcards also accept file exclusion ranges 
  1103. to further define the files that you wish to work with.  4OS2 examines each 
  1104. file name and excludes files that match the names you have specified in a file 
  1105. exclusion range. 
  1106.  
  1107. A file exclusion range begins with the switch character (usually a slash), 
  1108. followed by a left square bracket and an exclamation mark ("[!")  The range 
  1109. ends with a right square bracket ("]"). 
  1110.  
  1111. Inside the brackets, you can list one or more filenames to be excluded from the 
  1112. command.  The filenames can include wildcards and extended wildcards, but 
  1113. cannot include path names or drive letters. 
  1114.  
  1115. The following example will display all files in the current directory except 
  1116. backup files (files with the extension .BAK or .BKP): 
  1117.  
  1118.         [c:\] dir /[!*.bak *.bkp] *.*
  1119.  
  1120. You can combine file exclusion ranges with date, time, and size ranges  This 
  1121. example displays all files that are 10K bytes or larger in size and that were 
  1122. created in the last 7 days, except .C and .H files: 
  1123.  
  1124.         [c:\] dir /[s10k] /[d-7] /[!*.c *.h] *.*
  1125.  
  1126. File exclusion ranges will only work for 4OS2 internal commands.  The EXCEPT 
  1127. command can be used to exclude files from processing by many external commands. 
  1128.  
  1129.  
  1130. ΓòÉΓòÉΓòÉ 3.4. Multiple Filenames ΓòÉΓòÉΓòÉ
  1131.  
  1132. Most file processing commands can work with multiple files at one time.  To use 
  1133. multiple file names, you simply list the files one after another on the command 
  1134. line, separated by spaces.  You can use wildcards in any or all of the 
  1135. filenames.  For example, to copy all .TXT and .DOC files from the current 
  1136. directory to drive A, you could use this command: 
  1137.  
  1138.         [c:\] copy *.txt *.doc a:
  1139.  
  1140. If the files you want to work with are not in the default directory, you must 
  1141. include the full path with each filename: 
  1142.  
  1143.         [c:\] copy a:\details\file1.txt a:\details\file1.doc c:
  1144.  
  1145. Multiple filenames are handy when you want to work with a group of files which 
  1146. cannot be defined with a single filename and wildcards.  They let you be very 
  1147. specific about which files you want to work with in a command. 
  1148.  
  1149. When you use multiple filenames with a command that expects both a source and a 
  1150. destination, like COPY or MOVE, be sure that you always include a specific 
  1151. destination on the command line.  If you don't, the command will assume that 
  1152. the last filename is the destination and may overwrite important files. 
  1153.  
  1154. Like extended wildcards and include lists, multiple filenames will work with 
  1155. internal commands but not with external programs, unless those programs have 
  1156. been written to handle multiple file names on the command line. 
  1157.  
  1158. If you have a list of files to process that's too long to put on the command 
  1159. line or too time-consuming to type, see FOR or SELECT for another way of 
  1160. passing multiple file names to a command. 
  1161.  
  1162.  
  1163. ΓòÉΓòÉΓòÉ 3.5. Include Lists ΓòÉΓòÉΓòÉ
  1164.  
  1165. Any internal command that accepts multiple filenames will also accept one or 
  1166. more include lists.  An include list is simply a group of filenames, with or 
  1167. without wildcards, separated by semicolons [;].  All files in the include list 
  1168. must be in the same directory.  You may not add a space on either side of the 
  1169. semicolon. 
  1170.  
  1171. For example, you can shorten this command which uses multiple file names: 
  1172.  
  1173.         [c:\] copy a:\details\file1.txt a:\details\file1.doc c:
  1174.  
  1175. to this using an include list: 
  1176.  
  1177.         [c:\] copy a:\details\file1.txt;file1.doc c:
  1178.  
  1179. Include lists are similar to multiple filenames, but have three important 
  1180. differences.  First, you don't have to repeat the path to your files if you use 
  1181. an include list, because all of the included files must be in the same 
  1182. directory.  Second, if you use include lists, you aren't as likely to 
  1183. accidentally overwrite files if you forget a destination path for commands like 
  1184. COPY, because the last name in the list will be part of the include list, and 
  1185. won't be seen as the destination file name.  (Include lists can only be used as 
  1186. the source parameter - the location files are coming from - for COPY and other 
  1187. similar commands.  They cannot be used to specify a destination for files.) 
  1188.  
  1189. Third, multiple filenames and include lists are processed differently by the 
  1190. DIR and SELECT commands. If you use multiple filenames, all of the files 
  1191. matching the first filename are processed, then all of the files matching the 
  1192. second name, and so on.  When you use an include list, all files that match any 
  1193. entry in the include list are processed together, and will appear together in 
  1194. the directory display or SELECT list.  You can see this difference clearly if 
  1195. you experiment with both techniques and the DIR command.  For example: 
  1196.  
  1197.         [c:\] dir *.txt *.doc
  1198.  
  1199. will list all the .TXT files with a directory header, the file list, and a 
  1200. summary of the total number of files and bytes used.  Then it will do the same 
  1201. for the .DOC files.  However, 
  1202.  
  1203.         [c:\] dir *.txt;*.doc
  1204.  
  1205. will display all the files in one list. 
  1206.  
  1207.  Like extended wildcards and multiple filenames, the include list feature will 
  1208. work with internal commands, but not with external programs (unless they have 
  1209. been programmed especially to support them).  The maximum length of an include 
  1210. list is 260 characters. 
  1211.  
  1212.  
  1213. ΓòÉΓòÉΓòÉ 3.6. Executable Extensions ΓòÉΓòÉΓòÉ
  1214.  
  1215. The syntax for creating an executable extension is: 
  1216.  
  1217.         set .ext=command [options]
  1218.  
  1219. This tells 4OS2 to run the specified command whenever you name a file with the 
  1220. extension .ext at the prompt. 
  1221.  
  1222. .EXT is the executable file extension; command is the name of the internal 
  1223. command, external program, alias, or batch file to run; and [options] are any 
  1224. command-line startup options you want to specify for the program, batch file, 
  1225. or alias. 
  1226.  
  1227. Normally, when you type a filename (as opposed to an alias or internal command 
  1228. name) as the first word on the command line, 4OS2 looks for a file with that 
  1229. name to execute.  The file's extension may be .EXE or .COM to indicate that it 
  1230. contains a program, it may have a batch file extension like .BTM, or the file's 
  1231. contents may indicate that it is executable.  (To change the default list of 
  1232. extensions see the PATHEXT environment variable and the PathExt setting in 
  1233. 4OS2.INI.) 
  1234.  
  1235. You can add to the default list of extensions, and have 4OS2 take the action 
  1236. you want with files that are not executable programs or batch files.  The 
  1237. action taken is always based on the file's extension.  For example, you could 
  1238. start your text editor whenever you type the name of a .DOC file, or start your 
  1239. database manager whenever you type the name of a .DAT file. 
  1240.  
  1241. You can use environment variables to define the internal command, external 
  1242. program, batch file, or alias to run for each defined file extension.  To 
  1243. create an executable extension, use the SET command to create a new environment 
  1244. variable.  An environment variable is recognized as an executable extension if 
  1245. its name begins with a period. 
  1246.  
  1247. For example, if you want to run a word processor called EDITOR whenever you 
  1248. type the name of a file that has an extension of .EDT, you could use this 
  1249. command: 
  1250.  
  1251.         [c:\] set .edt=c:\edit\editor.exe
  1252.  
  1253. If the command specified in an executable extension is a batch file or external 
  1254. program, 4OS2 will search the PATH for it if necessary.  However, you can make 
  1255. sure that the correct program or batch file is used, and speed up the 
  1256. executable extension, by specifying the full name including drive, path, 
  1257. filename, and extension. 
  1258.  
  1259. Once an executable extension is defined, any time you name a file with that 
  1260. extension the corresponding program, batch file, or alias is started, with the 
  1261. name of your file passed to it as a parameter. 
  1262.  
  1263. The following example defines B.EXE (the Boxer text editor) as the processor 
  1264. for .MAK files: 
  1265.  
  1266.         [c:\] set .mak=c:\boxer\b.exe -s
  1267.  
  1268. With this definition, if you have a file named INIT.MAK in the current 
  1269. directory and enter the command: 
  1270.  
  1271.         [c:\source] init
  1272.  
  1273. 4OS2 will execute the command: 
  1274.  
  1275.         c:\boxer\b.exe -s c:\source\init.mak
  1276.  
  1277. Notice that the full pathname of INIT.MAK is automatically included.  If you 
  1278. enter parameters on the command line, they are appended to the end of the 
  1279. command.  For example, if you changed the above entry to: 
  1280.  
  1281.         [c:\source] init -w
  1282.  
  1283. the command processor would execute the command: 
  1284.  
  1285.         c:\boxer\b.exe -s c:\source\init.mak -w
  1286.  
  1287. In order for executable extensions to work, the command, program, batch file, 
  1288. or alias must be able to interpret the command line properly.  For example, if 
  1289. a program you want to run doesn't accept a file name on its command line as 
  1290. shown in these examples, then executable extensions won't work with that 
  1291. program. 
  1292.  
  1293. Executable extensions may include wildcards, so you could, for example, run 
  1294. your text editor for any file with an extension beginning with T by defining an 
  1295. executable extension called .T*.  Extended wildcards (e.g., DO[CT] for .DOC and 
  1296. .DOT files) may also be used. 
  1297.  
  1298. The search for executable files starts in the current directory, then proceeds 
  1299. to each subdirectory specified by the PATH environment variable (if a "." is 
  1300. used in the PATH the current directory is not searched first; see the PATH 
  1301. command for details). 
  1302.  
  1303. You may need to take this search order into account when using executable 
  1304. extensions.  Using the .MAK example above, if you had a file named FORMAT.MAK 
  1305. in the current directory and entered the command FORMAT A:, your command would 
  1306. run the Boxer editor specified by the executable extension, instead of finding 
  1307. the standard OS/2 FORMAT command as you perhaps intended.  You can get around 
  1308. this by remembering that the OS/2 FORMAT command is in the file FORMAT.COM.  If 
  1309. you entered the command FORMAT.COM A: then the .MAK executable extension would 
  1310. not be checked, and the search would continue until it found the FORMAT.COM 
  1311. file. 
  1312.  
  1313. To remove an executable extension, use the UNSET command to remove the 
  1314. corresponding variable. 
  1315.  
  1316.  
  1317. ΓòÉΓòÉΓòÉ 4. ┬áDirectory Navigation ΓòÉΓòÉΓòÉ
  1318.  
  1319. The operating system and command processor remember both a current or default 
  1320. drive for your system as a whole, and a current or default directory for every 
  1321. drive in your system.  The current directory on the current drive is sometimes 
  1322. called the current working directory. 
  1323.  
  1324. With traditional command processors, you change the current drive by typing the 
  1325. new drive letter plus a colon at the prompt, and you change the current working 
  1326. directory with the CD command.  4OS2 supports those standard features, and 
  1327. offer a number of enhancements to make directory navigation much simpler and 
  1328. faster. 
  1329.  
  1330. The 4OS2 directory navigation features are in three groups:  features which 
  1331. help the command processor find the directory you want, methods for initiating 
  1332. a directory change with a minimal amount of typing, and methods for returning 
  1333. easily to directories you've recently used.  Each group is summarized below. 
  1334.  
  1335. Finding Directories 
  1336.  
  1337. Traditional command processors require you to explicitly type the name of the 
  1338. directory you want to change to.  4OS2 support this method, and also offer two 
  1339. significant enhancements: 
  1340.  
  1341.     *   Extended Directory Searches allow the command processor to search a 
  1342.         "database" of all the directories on your system to find the one you 
  1343.         want. 
  1344.  
  1345.     *   The CDPATH allows you to enter a specific list of directories to be 
  1346.         searched, rather than searching a database.  Use CDPATH instead of 
  1347.         Extended Directory Searches if you find the extended searches too 
  1348.         broad, or your hard drive has too many directories for an efficient 
  1349.         search. 
  1350.  
  1351.  Initiating a Directory Change 
  1352.  
  1353.  4OS2 supports the traditional methods of changing directories, and also offers 
  1354.  several more flexible approaches: 
  1355.  
  1356.     *   Automatic directory changes allow you to type a directory name at the 
  1357.         prompt and switch to it automatically, without typing an explicit CD or 
  1358.         similar command. 
  1359.  
  1360.     *   The CD command can change directories on a single drive, and can return 
  1361.         to the most recently used directory. 
  1362.  
  1363.     *   The CDD command changes drive and directory at the same time, and can 
  1364.         return to the most recently used drive and directory. 
  1365.  
  1366.     *   The PUSHD command changes changes the drive and directory like CDD, and 
  1367.         records the previous directory in a directory "stack."  You can view 
  1368.         the stack with DIRS and return to the directory on the top of the stack 
  1369.         with POPD. 
  1370.  
  1371.  CDD, PUSHD, and automatic directory changes can also change to a network drive 
  1372.  and directory mapped to a drive letter or specified with a UNC name (see File 
  1373.  Systems for more information about network directories). 
  1374.  
  1375.   Returning to a Previous Directory 
  1376.  
  1377.  Traditional command processors do not remember previously-used directories, 
  1378.  and can only "return" to a directory by changing back to it with a standard 
  1379.  drive change or CD command.  4OS2 supports three additional methods for 
  1380.  returning to a previous directory: 
  1381.  
  1382.     *   The CD - and CDD - commands can be used to return to the previous 
  1383.         working directory (the one you used immediately before the current 
  1384.         directory).  Use these commands if you are working in two directories 
  1385.         and alternating between them. 
  1386.  
  1387.     *   The directory history window allows you to select one of several 
  1388.         recently-used directories from a popup list and return to it 
  1389.         immediately.  The window displays the contents of the directory history 
  1390.         list. 
  1391.  
  1392.     *   The POPD command will return to the last directory saved by PUSHD. The 
  1393.         directory stack holds 511 characters, enough for 20 to 40 typical drive 
  1394.         and directory entries. 
  1395.  
  1396.  
  1397. ΓòÉΓòÉΓòÉ 4.1. Extended Directory Searches ΓòÉΓòÉΓòÉ
  1398.  
  1399. When you change directories with an automatic directory change, CD, CDD, or 
  1400. PUSHD command, 4OS2 must find the directory you want to change to.  To do so, 
  1401. the command processor first uses the traditional method to find a new 
  1402. directory:  it checks to see whether you have specified either the name of an 
  1403. existing subdirectory below the current directory, or the name of an existing 
  1404. directory with a full path or a drive letter.  If you have, the command 
  1405. processor changes to that directory, and does no further searching. 
  1406.  
  1407. This traditional search method requires that you navigate manually through the 
  1408. directory tree, and type the entire name of each directory you want to change 
  1409. to.  Extended Directory Searches speed up the navigation process dramatically 
  1410. by allowing the command processor to find the directory you want, even if you 
  1411. only enter a small part of its name. 
  1412.  
  1413. When the traditional search method fails, 4OS2 try to find the directory you 
  1414. requested via the CDPATH, then via an Extended Directory Search.  This section 
  1415. covers only Extended Directory Searches, which are more flexible and more 
  1416. commonly used than CDPATH. 
  1417.  
  1418. Extended Directory Searches use a database of directory names to facilitate 
  1419. changing to the correct directory.  The database is used only if Extended 
  1420. Directory Searches are enabled, and if the explicit directory search and CDPATH 
  1421. search fail to find the directory you requested. 
  1422.  
  1423. An extended directory search automatically finds the correct path to the 
  1424. requested directory and changes to it if that directory exists in your 
  1425. directory database.  If more than one directory in the database matches the 
  1426. name you have typed, a popup window appears and you can choose the directory 
  1427. you want. 
  1428.  
  1429. You can control the color, position and size of the popup directory search 
  1430. window from the Command line 2 page of the OPTION dialogs, or with directives 
  1431. in the .INI file, including CDDWinLeft, CDDWinTop, CDDWinWidth, and 
  1432. CDDWinHeight, and CDDWinColors.  You can also change the keys used in the popup 
  1433. window with key mapping directives in 4OS2.INI. 
  1434.  
  1435. To use extended directory searches, you must explicitly enable them and also 
  1436. create the directory database. 
  1437.  
  1438. The Extended Search Database 
  1439.  
  1440. To create or update the database of directory names, use the CDD /S command. 
  1441. When you create the database with CDD /S, you can specify which drives should 
  1442. be included.  If you enable Extended Directory Searches and do not create the 
  1443. database, it will be created automatically the first time it is required, and 
  1444. will include all local hard drives. 
  1445.  
  1446. The database is stored in the file JPSTREE.IDX, which is placed in the root 
  1447. directory of drive C: by default.  The same tree file is used by all JP 
  1448. Software command processors.  You can specify a different location for this 
  1449. file on the Command Line 2 page of the OPTION dialogs, or with the TreePath 
  1450. .INI directive.  If you are using 2 or more of our products on your computer 
  1451. and want to have different drives stored in the database for each, use the 
  1452. dialogs or the TreePath directive to place their database directories in 
  1453. different locations. 
  1454.  
  1455. If you use an internal 4OS2 command to create or delete a directory, the 
  1456. directory database is automatically updated to reflect the change to your 
  1457. directory structure.  The updates occur if the command processor can find the 
  1458. JPSTREE.IDX file in the root directory of drive C: or in the location specified 
  1459. by the TreePath .INI directive. 
  1460.  
  1461. The internal commands which can modify the directory structure and cause 
  1462. automatic updates of the file are MD, RD, COPY /S, DEL /X, MOVE /S, and REN. 
  1463. The MD /N command can be used to create a directory without updating the 
  1464. directory database.  This is useful when creating a temporary directory which 
  1465. you do not want to appear in the database. 
  1466.  
  1467. Enabling Extended Searches 
  1468.  
  1469. To enable extended directory searches and control their operation, you must set 
  1470. the FuzzyCD directive in the .INI file.  You can set FuzzyCD with the Search 
  1471. Level option on the Command Line 2 page of the OPTION dialogs, or by editing 
  1472. the .INI file manually. 
  1473.  
  1474.         If FuzzyCD = 0, extended searches are disabled, the JPSTREE database is 
  1475.         ignored, and CD, CDD, PUSHD, and automatic directory changes search for 
  1476.         directories using only explicit names and CDPATH.  This is the default. 
  1477.  
  1478.         If FuzzyCD = 1 and an extended search is required, then the command 
  1479.         processor will search the JPSTREE database for directory names which 
  1480.         exactly match the name you specified. 
  1481.  
  1482.         If FuzzyCD = 2 and an extended search is required, the command 
  1483.         processor will search the database for exact matches first, just as 
  1484.         when FuzzyCD = 1.  If the requested directory is not found, it will 
  1485.         search the database a second time looking for directory names that 
  1486.         begin with the name you specified. 
  1487.  
  1488.         If FuzzyCD = 3 and an extended search is required, the command 
  1489.         processor will search the database for exact matches first, just as 
  1490.         when FuzzyCD = 1.  If the requested directory is not found, it will 
  1491.         search the database a second time looking for directory names that 
  1492.         contain the name you specified anywhere within them. 
  1493.  
  1494.  For example, suppose that you have a directory called C:\DATA\MYDIR, CDPATH is 
  1495.  not set, and C:\DATA is not the current directory on drive C:.  The following 
  1496.  chart shows what CDD command you might use to change to this directory. 
  1497.  
  1498.         FuzzyCD 
  1499.         Setting     CDD Command 
  1500.  
  1501.          0          [c:\] cdd c:\data\mydir 
  1502.          1          [c:\] cdd mydir 
  1503.          2          [c:\] cdd myd 
  1504.          3          [c:\] cdd yd 
  1505.  
  1506.  An extended directory search is not used if you specify a full directory path 
  1507.  (one beginning with a backslash [\], or a drive letter and a backslash).  If 
  1508.  you use a name which begins with a drive letter (e.g. C:MYDIR ), the extended 
  1509.  search will examine only directories on that drive. 
  1510.  
  1511.  Forcing an Extended Search with Wildcards 
  1512.  
  1513.  Normally you type a specific directory name for the command processor to 
  1514.  locate, and the search proceeds as described in the preceding sections. 
  1515.  However, you can also force the command processor to perform an extended 
  1516.  directory search by using wildcard characters in the directory name.  If you 
  1517.  use a wildcard, an extended search will occur whether or not extended searches 
  1518.  have been enabled. 
  1519.  
  1520.  When 4OS2 is changing directories and it finds wildcards in the directory 
  1521.  name, it skips the explicit search and CDPATH steps and goes directly to the 
  1522.  extended search. 
  1523.  
  1524.  If a single match is found, the change is made immediately.  If more than one 
  1525.  match is found, a popup window is displayed with all matching directories. 
  1526.  
  1527.  Wildcards can only be used in the final directory name in the path (after the 
  1528.  last backslash in the path name).  For example you can find COMM\*A*.* (all 
  1529.  directories whose parent directory is COMM and which have an A somewhere in 
  1530.  their names), but you cannot find CO?M\*A*.* because it uses a wildcard before 
  1531.  the last backslash. 
  1532.  
  1533.  If you use wildcards in the directory name as described here, and the extended 
  1534.  directory search database does not exist, it will be built automatically the 
  1535.  first time a wildcard is used.  You can update the database at any time with 
  1536.  CDD /S. 
  1537.  
  1538.  Internally, extended directory searches use wildcards to scan the directory 
  1539.  database.  If FuzzyCD is set to 2, an extended search looks for the name you 
  1540.  typed followed by an asterisk (i.e. DIRNAME*).  If FuzzyCD is set to 3, it 
  1541.  looks for the name preceded and followed by an asterisk (i.e. *DIRNAME*). 
  1542.  
  1543.  These internal wildcards will be used in addition to any wildcards you use in 
  1544.  the name.  For example if you search for ABC?DEF (ABC followed by any 
  1545.  character followed by DEF) and FuzzyCD is set to 3, the command processor will 
  1546.  actually search the directory database for *ABC?DEF*. 
  1547.  
  1548.  Disabling Extended Searches in Batch Files 
  1549.  
  1550.  When writing batch files you may want to use the CD or CDD command to switch 
  1551.  directories without triggering an extended search.  For example, you may need 
  1552.  the search to fail (rather than search the extended search database) if a 
  1553.  directory does not exist, or you may want to ensure that the extended search 
  1554.  popup window does not appear in a batch file designed to run in unattended 
  1555.  mode. 
  1556.  
  1557.  To disable extended searches, use the /N option of CD or CDD.  When this 
  1558.  option is used and a directory does not exist below the current directory or 
  1559.  on the CDPATH, the command will fail with an error message, and will not 
  1560.  search the extended search database.  For example this command might trigger 
  1561.  an extended search: 
  1562.  
  1563.        cdd testdir
  1564.  
  1565.  but this one will not: 
  1566.  
  1567.        cdd /n testdir
  1568.  
  1569.  Note that this option is not available for PUSHD.  To perform the same 
  1570.  function when using PUSHD, save the current directory with PUSHD (without 
  1571.  parameters) and then use CDD /N to change directories, for example: 
  1572.  
  1573.        pushd
  1574.        cdd /n testdir
  1575.  
  1576.  
  1577. ΓòÉΓòÉΓòÉ 4.2. CDPATH ΓòÉΓòÉΓòÉ
  1578.  
  1579. When you change directories with an automatic directory change, CD, CDD, or 
  1580. PUSHD command, 4OS2 must find the directory you want to change to.  To do so, 
  1581. the command processor first uses the traditional method to find a new 
  1582. directory. 
  1583.  
  1584. When the traditional search method fails, 4OS2 tries to find the directory you 
  1585. requested via the CDPATH, then via an Extended Directory Search.  This section 
  1586. covers only the CDPATH. 
  1587.  
  1588. Enabling both CDPATH and Extended Directory Searches can yield confusing 
  1589. results, so we recommend that you do not use both features at the same time. If 
  1590. you prefer to explicitly list where the command processor should look for 
  1591. directories, use CDPATH.  If you prefer to have the command processor look at 
  1592. all of the directory names on your disk, use Extended Directory Searches. 
  1593.  
  1594. CDPATH is an environment variable, and is similar to the PATH variable used to 
  1595. search for executable files:  it contains an explicit list of directories to 
  1596. search when attempting to find a new directory.  The command processor appends 
  1597. the specified directory name to each directory in CDPATH and attempts to change 
  1598. to that drive and directory.  It stops when it finds a match or when it reaches 
  1599. the end of the CDPATH list. 
  1600.  
  1601. CDPATH is ignored if a complete directory name (one beginning with a backslash 
  1602. [ \]) is specified, or if a drive letter is included in the name.  It is only 
  1603. used when a name is given with no drive letter or leading backslash. 
  1604.  
  1605. CDPATH provides a quick way to find commonly used subdirectories in an explicit 
  1606. list of locations.  You can create CDPATH with the SET command.  The format of 
  1607. CDPATH is similar to that of PATH:  a list of directories separated by 
  1608. semicolons [;].  For example, if you want the directory change commands to 
  1609. search the C:\DATA directory, the D:\SOFTWARE directory, and the root directory 
  1610. of drive E:\ for the subdirectories that you name, you should create CDPATH 
  1611. with this command: 
  1612.  
  1613.         [c:\] set cdpath=c:\data;d:\software;e:\
  1614.  
  1615. Suppose you are currently in the directory C:\WP\LETTERS\JANUARY, and you'd 
  1616. like to change to D:\SOFTWARE\UTIL.  You could change directories explicitly 
  1617. with the command: 
  1618.  
  1619.         [c:\wp\letters\january] cdd d:\software\util
  1620.  
  1621. However, because the D:\SOFTWARE directory is listed in your CDPATH variable as 
  1622. shown in the previous example (we'll assume it is the first directory in the 
  1623. list with a UTIL subdirectory), you can simply enter the command 
  1624.  
  1625.         [c:\wp\letters\january] cdd util
  1626.  
  1627. or, using an automatic directory change: 
  1628.  
  1629.         [c:\wp\letters\january] util\
  1630.  
  1631. to change to D:\SOFTWARE\UTIL. 
  1632.  
  1633. As it handles this request, the command processor looks first in the current 
  1634. directory, and attempts to find the C:\WP\LETTERS\JANUARY\UTIL subdirectory. 
  1635. Then it looks at CDPATH, and appends the name you entered, UTIL, to each entry 
  1636. in the CDPATH variable -- in other words, it tries to change to C:\DATA\UTIL, 
  1637. then to D:\SOFTWARE\UTIL.  Because this change succeeds, the search stops and 
  1638. the directory change is complete. 
  1639.  
  1640.  
  1641. ΓòÉΓòÉΓòÉ 5. Other Features ΓòÉΓòÉΓòÉ
  1642.  
  1643.             Page and File Prompts 
  1644.             Redirection and Piping 
  1645.             Using the Keystack 
  1646.             Waiting for Applications to Finish 
  1647.             Critical Errors 
  1648.             Conditional Commands 
  1649.             Command Grouping 
  1650.             Escape Character 
  1651.  
  1652.  
  1653. ΓòÉΓòÉΓòÉ 5.1. Page and File Prompts ΓòÉΓòÉΓòÉ
  1654.  
  1655. Several 4OS2 commands can generate prompts, which wait for you to press a key 
  1656. to view a new page or to perform a file activity. 
  1657.  
  1658. When 4OS2 is displaying information in page mode, for example with a DIR /P or 
  1659. SET /P command, it displays the message 
  1660.  
  1661.         Press Esc to Quit or any other key to continue...
  1662.  
  1663. At this prompt, you can press Esc, Ctrl-C, or Ctrl- Break if you want to quit 
  1664. the command.  You can press almost any other key to continue with the command 
  1665. and see the next page of information. 
  1666.  
  1667. During file processing, if you have activated prompting with a command like DEL 
  1668. /P, you will see this prompt before processing every file: 
  1669.  
  1670.         Y/N/R ?
  1671.  
  1672. You can answer this prompt by pressing Y for "Yes, process this file;"  N for 
  1673. "No, do not process this file;" R for "process the Remainder of the files 
  1674. without further prompting."  You can also press Ctrl-C, Ctrl-Break, or Esc at 
  1675. this prompt to cancel the remainder of the command. 
  1676.  
  1677.  
  1678. ΓòÉΓòÉΓòÉ 5.2. Redirection and Piping ΓòÉΓòÉΓòÉ
  1679.  
  1680. This section covers redirection and piping.  You can use these features to 
  1681. change how 4OS2 and some application programs handle input and output. 
  1682.  
  1683. Internal commands and many external programs get their input from the 
  1684. computer's standard input device and send their output to the standard output 
  1685. device.  Some programs also send special messages to the standard error device. 
  1686. Normally, the keyboard is used for standard input and the video screen for both 
  1687. standard output and standard error. 
  1688.  
  1689. Redirection and piping allow you to change these assignments temporarily. 
  1690.  
  1691. Redirection changes the standard input, standard output, or standard error 
  1692. device for a program or command from the default device (the keyboard or 
  1693. screen), to another device or to a file. 
  1694.  
  1695. Piping changes the standard output and / or standard error device so that the 
  1696. output of one command becomes the standard input for another program or 
  1697. command. 
  1698.  
  1699.  
  1700. ΓòÉΓòÉΓòÉ 5.2.1. Redirection ΓòÉΓòÉΓòÉ
  1701.  
  1702. Redirection can be used to reassign the standard input, standard output, and 
  1703. standard error devices from their default settings (the keyboard and screen) to 
  1704. another device like the printer or serial port, to a file, or to the clipboard. 
  1705. You must use some discretion when you use redirection with a device; there is 
  1706. no way to get input from the printer, for example. 
  1707.  
  1708. Redirection always applies to a specific command, and lasts only for the 
  1709. duration of that command.  When the command is finished, the assignments for 
  1710. standard input, standard output, and standard error revert to whatever they 
  1711. were before the command. 
  1712.  
  1713. In the descriptions below, filename means either the name of a file or of an 
  1714. appropriate device (PRN, LPT1, LPT2, or LPT3 for printers; COM1 to COM4 for 
  1715. serial ports; CON for the keyboard and screen; CLIP: for the clipboard; NUL for 
  1716. the "null" device, etc.). 
  1717.  
  1718. Here are the standard redirection options supported by 4OS2 (see below for 
  1719. additional redirection options using numeric file handles): 
  1720.  
  1721.         < filename          To get input from a file or device instead of from 
  1722.                             the keyboard 
  1723.         > filename          Redirect standard output to a file or device 
  1724.         >& filename         Redirect standard output and standard error to a 
  1725.                             file or device 
  1726.         >&> filename        Redirect standard error only to a file or device 
  1727.  
  1728.  If you want to append output to the end of an existing file, rather than 
  1729.  creating a new file, replace the first ">" in the last three commands above 
  1730.  with ">>" (i.e., use >>, >>&, and >>&>). 
  1731.  
  1732.  To use redirection, place the redirection symbol and filename at the end of 
  1733.  the command line, after the command name and any parameters.  For example, to 
  1734.  redirect the output of the DIR command to a file called DIRLIST, you could use 
  1735.  a command line like this: 
  1736.  
  1737.           [c:\] dir /b *.dat > dirlist
  1738.  
  1739.  You can use both input and output redirection for the same command, if both 
  1740.  are appropriate:  For example, this command sends input to SORT from the file 
  1741.  DIRLIST, and sends output from SORT to the file DIRLIST.SRT: 
  1742.  
  1743.           [c:\] sort < dirlist > dirlist.srt
  1744.  
  1745.  You can redirect text to or from the OS/2 clipboard by using the pseudo-device 
  1746.  name CLIP: (the colon is required). 
  1747.  
  1748.  If you redirect the output of a single internal command like DIR, the 
  1749.  redirection ends automatically when that command is done.  If you start a 
  1750.  batch file with redirection, all of the batch file's output is redirected, and 
  1751.  redirection ends when the batch file is done.  Similarly, if you use 
  1752.  redirection at the end of a command group, all of the output from the command 
  1753.  group is redirected, and redirection ends when the command group is done. 
  1754.  
  1755.  When output is directed to a file with >, >&, or >&>, if the file already 
  1756.  exists, it will be overwritten.  You can protect existing files by using the 
  1757.  SETDOS /N1 command, the "Protect redirected output files" setting available on 
  1758.  the Options 1 page of the OPTION dialogs, or the NoClobber directive in the 
  1759.  .INI file. 
  1760.  
  1761.  When output is appended to a file with >>, >>&, or >>&>, the file will be 
  1762.  created if it doesn't already exist.  However, if NoClobber is set as 
  1763.  described in the above, append redirection will not create a new file; 
  1764.  instead, if the output file does not exist a "File not found" or similar error 
  1765.  will be displayed. 
  1766.  
  1767.  You can temporarily override the current setting of NoClobber by using an 
  1768.  exclamation mark [!] after the redirection symbol. For example, to redirect 
  1769.  the output of DIR to the file DIROUT, and allow overwriting of any existing 
  1770.  file despite the NoClobber setting: 
  1771.  
  1772.           [c:\] dir >! dirout
  1773.  
  1774.  Redirection is fully nestable.  For example, you can invoke a batch file and 
  1775.  redirect all of its output to a file or device.  Output redirection on a 
  1776.  command within the batch file will take effect for that command only; when the 
  1777.  command is completed, output will revert to the redirected output file or 
  1778.  device in use for the batch file as a whole. 
  1779.  
  1780.  You can use redirection if you need to create a zero-byte file.  To do so, 
  1781.  enter >filename as a command, with no actual command before the > character. 
  1782.  
  1783.  In addition to the standard redirection options above, 4OS2 also supports the 
  1784.  OS/2 CMD.EXE syntax: 
  1785.  
  1786.         n>file      Redirect handle n to the named file 
  1787.         n>&m        Redirect handle n to the same place as handle m 
  1788.  
  1789.  [n] and [m] are one-digit file handles between 0 and 9.  You may not put any 
  1790.  spaces between the n and the >, or between the >, &, and m in the second form. 
  1791.  OS/2 interprets "0" as standard input, "1" as standard output, and "2" as 
  1792.  standard error.  Handles 3 to 9 will probably not be useful unless you have an 
  1793.  application which uses those handles for a specific, documented purpose, or 
  1794.  you have opened a file with the %@FILEOPEN variable function and the file 
  1795.  handle is between 3 and 9. 
  1796.  
  1797.  The n>file syntax redirects output from handle n to a file.  You can use this 
  1798.  form to redirect two handles to different places.  For example: 
  1799.  
  1800.           [c:\] dir > outfile 2> errfil
  1801.  
  1802.  sends normal output to a file called OUTFILE and any error messages to a file 
  1803.  called ERRFILE. 
  1804.  
  1805.  The n>&m syntax redirects handle n to the same location as the previously 
  1806.  assigned handle m.  For example, to send standard error to the same file as 
  1807.  standard output, you could use this command: 
  1808.  
  1809.           [c:\] .dir > outfile 2>&1
  1810.  
  1811.  Notice that you can perform the same operations by using standard 4OS2 
  1812.  redirection features.  The two examples above could be written as 
  1813.  
  1814.           [c:\] dir > outfile >&> errfile
  1815.  
  1816.  and 
  1817.  
  1818.           [c:\] dir >&outfile
  1819.  
  1820.  
  1821. ΓòÉΓòÉΓòÉ 5.2.2. Piping ΓòÉΓòÉΓòÉ
  1822.  
  1823. You can create a "pipe" to send the standard output of one command to the 
  1824. standard input of another command: 
  1825.  
  1826.         command1 | command2             Send the standard output of command1 to 
  1827.                                         the standard input of command2 
  1828.         command1 |& command2            Send the standard output and standard 
  1829.                                         error of command1 to the standard input 
  1830.                                         of command2 
  1831.  
  1832.  For example, to take the output of the SET command (which displays a list of 
  1833.  your environment variables and their values) and pipe it to the SORT utility 
  1834.  to generate a sorted list, you would use the command: 
  1835.  
  1836.           [c:\] set | sort
  1837.  
  1838.  To do the same thing and then pipe the sorted list to the internal LIST 
  1839.  command for full-screen viewing: 
  1840.  
  1841.           [c:\] set | sort | list
  1842.  
  1843.  The TEE and Y commands are "pipe fittings" which add more flexibility to 
  1844.  pipes. 
  1845.  
  1846.  Like redirection, pipes are fully nestable.  For example, you can invoke a 
  1847.  batch file and send all of its output to another command with a pipe.  A pipe 
  1848.  on a command within the batch file will take effect for that command only; 
  1849.  when the command is completed, output will revert to the pipe in use for the 
  1850.  batch file as a whole.  You may also have 2 or more pipes operating 
  1851.  simultaneously if, for example, you have the pipes running in different 
  1852.  windows. 
  1853.  
  1854.  4OS2 implements pipes by starting a new process for the receiving program 
  1855.  instead of using temporary files.  The sending and receiving programs run 
  1856.  simultaneously; the sending program writes to the pipe and the receiving 
  1857.  program reads from the pipe.  When the receiving program finishes reading and 
  1858.  processing the piped data, it is ends automatically. 
  1859.  
  1860.  When you use pipes with 4OS2 make sure you think about any possible 
  1861.  consequences that can occur from using a separate process to run the receiving 
  1862.  program. 
  1863.  
  1864.  
  1865. ΓòÉΓòÉΓòÉ 5.3. Using the Keystack ΓòÉΓòÉΓòÉ
  1866.  
  1867. The Keystack overcomes two weaknesses of input redirection:  some programs 
  1868. ignore standard input and read the keyboard directly, and input redirection 
  1869. doesn't end until the program or command terminates.  You can't, for example, 
  1870. use redirection to send the opening commands to a program and then type the 
  1871. rest of the commands yourself.  But the Keystack lets you do exactly that. 
  1872.  
  1873. The Keystack sends keystrokes to an application program.  Once the Keystack is 
  1874. empty, the program will receive the rest of its input from the keyboard. The 
  1875. Keystack is useful when you want a program to take certain actions 
  1876. automatically when it starts.  It is most often used in batch files and 
  1877. aliases.  The Keystack is invoked with the KEYSTACK command. 
  1878.  
  1879. KEYSTACK depends on a program called KEYSTACK.EXE.  This file must be in the 
  1880. same directory as 4OS2.EXE, or in a directory listed in your PATH.  You don't 
  1881. have to take any special action to activate KEYSTACK.EXE; 4OS2 will run it 
  1882. automatically when you use the KEYSTACK command.  If 4OS2 cannot find 
  1883. KEYSTACK.EXE, the KEYSTACK command will display an error message. 
  1884.  
  1885. To place the letters, digits, and punctuation marks you would normally type for 
  1886. your program into the keystack, enclose them in double quotes: 
  1887.  
  1888.         [c:\] keystack "myfile"
  1889.  
  1890. Many other keys can be entered into the Keystack using their names.  This 
  1891. example puts the F1 key followed by the Enter key in the keystack: 
  1892.  
  1893.         [c:\] keystack F1 Enter
  1894.  
  1895. See Keys and Key Names for details on how key names are entered.  See the 
  1896. KEYSTACK command for information on using numeric key values along with or 
  1897. instead of key names, and other details about using the Keystack. 
  1898.  
  1899. The following command creates an alias that will run a FoxPro report called 
  1900. TIMEREP (it should be entered on one line): 
  1901.  
  1902.         [c:\] alias timerep `keystack "use times index times" Enter
  1903.               "report form timerep to print" Enter "quit" Enter & foxpro`
  1904.  
  1905. This command creates an alias called timerep which puts the following 
  1906. characters on the keystack: 
  1907.  
  1908.         the characters "use times index times" the Enter key's code the 
  1909.         characters "report form timerep to print" the Enter key's code the 
  1910.         characters "quit" and one more Enter key 
  1911.  
  1912.  The alias then runs the program FOXPRO which receives those characters just as 
  1913.  if you had typed them. 
  1914.  
  1915.  When you use the Keystack, remember that you must put the keystrokes into the 
  1916.  Keystack before you run the program that will receive them.  The Keystack will 
  1917.  hold the keystrokes until the program asks for them. 
  1918.  
  1919.  
  1920. ΓòÉΓòÉΓòÉ 5.4. Waiting for Applications to Finish ΓòÉΓòÉΓòÉ
  1921.  
  1922. When you start an OS/2 Presentation Manager application from the prompt, the 
  1923. command processor does not normally wait for the application to finish before 
  1924. returning to the prompt.    This default behavior allows you to continue your work 
  1925. at the prompt while the application is running.  You can force 4OS2 to wait for 
  1926. applications to finish before continuing by selecting the "Wait for Completion" 
  1927. option on the Options 2 page of the OPTION dialogs, with the ExecWait directive 
  1928. in the .INI file, or with the START command's /WAIT switch (you can also use 
  1929. START to control many other aspects of how your applications are started). 
  1930.  
  1931. Regardless of the ExecWait setting, 4OS2 always waits for applications which 
  1932. are run from batch files before continuing with subsequent commands in the 
  1933. batch file.  To start an application from a batch file and continue with the 
  1934. batch file immediately, without waiting for the application to finish, use the 
  1935. START command (without the /WAIT switch). 
  1936.  
  1937.  
  1938. ΓòÉΓòÉΓòÉ 5.5. Critical Errors ΓòÉΓòÉΓòÉ
  1939.  
  1940. OS/2 watches for physical errors during input and output operations.  Physical 
  1941. errors are those due to hardware problems, such as trying to read a floppy disk 
  1942. while the drive door is open. 
  1943.  
  1944. These errors are called critical errors because OS/2, 4OS2, or your application 
  1945. program cannot proceed until the error is resolved. 
  1946.  
  1947. When a critical error occurs, you will see a popup window asking you to choose 
  1948. one of four error handling options.  The message comes from OS/2 or 4OS2, and 
  1949. will vary slightly depending on whether you are in full-screen or windowed 
  1950. mode.  You can respond with a mouse click or menu selection.  The options and 
  1951. their meanings are similar in all cases: 
  1952.  
  1953.         Return error code to program.  Tell the program that the operation 
  1954.         failed.  This option returns an error code to 4OS2 or to the 
  1955.         application program that was running when the error occurred.  4OS2 
  1956.         generally stops the current command when an operation fails. 
  1957.  
  1958.         End program/command/operation.  Choose this option to stop the program 
  1959.         that was running when the error occurred and abort 4OS2. 
  1960.  
  1961.         Retry command or operation.  Choose this option if you have corrected 
  1962.         the problem. 
  1963.  
  1964.         Display help.  Display further information on the error. 
  1965.  
  1966.  
  1967. ΓòÉΓòÉΓòÉ 5.6. Conditional Commands ΓòÉΓòÉΓòÉ
  1968.  
  1969. When an internal command or external program finished, it returns a result 
  1970. called the exit code.  Conditional commands allow you to perform tasks based 
  1971. upon the previous command's exit code.  Many programs return a 0 if they are 
  1972. successful and a non-zero value if they encounter an error. 
  1973.  
  1974. If you separate two commands by && (AND), the second command will be executed 
  1975. only if the first returns an exit code of 0.  For example, the following 
  1976. command will only erase files if the BACKUP operation succeeds: 
  1977.  
  1978.         [c:\] backup c:\ a: && del c:\*.bak;*.lst
  1979.  
  1980. If you separate two commands by || (OR), the second command will be executed 
  1981. only if the first returns a non-zero exit code.  For example, if the following 
  1982. BACKUP operation fails, then ECHO will display a message: 
  1983.  
  1984.         [c:\] backup c:\ a: || echo Error in the backup!
  1985.  
  1986. All internal commands return an exit code, but not all external programs do. 
  1987. Conditional commands will behave unpredictably if you use them with external 
  1988. programs which do not return an explicit exit code.  To determine whether a 
  1989. particular external program returns a meaningful exit code use an ECHO %? 
  1990. command immediately after the program is finished.  If the program's 
  1991. documentation does not discuss exit codes you may need to experiment with a 
  1992. variety of conditions to see how the exit code changes. 
  1993.  
  1994.  
  1995. ΓòÉΓòÉΓòÉ 5.7. Command Grouping ΓòÉΓòÉΓòÉ
  1996.  
  1997. Command grouping allows you to logically group a set of commands together by 
  1998. enclosing them in parentheses.  The parentheses are similar in function to the 
  1999. BEGIN and END block statements in some programming languages. 
  2000.  
  2001. There are two primary uses for command grouping.  One is to execute multiple 
  2002. commands in a place where normally only a single command is allowed.  For 
  2003. example, suppose you want to execute two different REN commands in all 
  2004. subdirectories of your hard disk.  You could do it like this: 
  2005.  
  2006.         [c:\] global ren *.wx1 *.wxo
  2007.         [c:\] global ren *.tx1 *.txo
  2008.  
  2009. But with command grouping you can do the same thing in one command (enter this 
  2010. on one line): 
  2011.  
  2012.         [c:\]global (ren *.wx1 *.wxo & ren *.tx1 *.txo)
  2013.  
  2014. The two REN commands enclosed in the parentheses appear to GLOBAL as if they 
  2015. were a single command, so both commands are executed for every directory, but 
  2016. the directories are only scanned once, not twice. 
  2017.  
  2018. This kind of command grouping is most useful with the EXCEPT, FOR, GLOBAL, and 
  2019. IF commands.  When you use this approach in a batch file you must either place 
  2020. all of the commands in the group on one line, or place the opening parenthesis 
  2021. at the end of a line and place the commands on subsequent lines.  For example, 
  2022. the first two of these sequences will work properly, but the third will not: 
  2023.  
  2024.         for %f in (1 2 3) (echo hello %f & echo goodbye %f)
  2025.         for %f in (1 2 3) (
  2026.             echo hello %f
  2027.             echo goodbye %f
  2028.         )
  2029.         for %f in (1 2 3) (echo hello %f
  2030.         echo goodbye %f)
  2031.  
  2032. The second common use of command grouping is to redirect input or output for 
  2033. several commands without repeatedly using the redirection symbols.  For 
  2034. example, consider the following batch file fragment which uses the ECHO command 
  2035. to create a file (with >), and to append to the file (with >>): 
  2036.  
  2037.         echo Data files %_date > filelist
  2038.         dir *.dat >> filelist
  2039.         echo. >> filelist
  2040.         echo Text files %_date >> filelist
  2041.         dir *.txt >> filelist
  2042.  
  2043. Using command grouping, these commands can be written much more simply.  Enter 
  2044. this example on one line: 
  2045.  
  2046.         (echo Data files %_date & dir *.dat & echo. & echo Text files
  2047.         %_date & dir *.txt) > filelist
  2048.  
  2049. The redirection, which appears outside the parentheses, applies to all the 
  2050. commands within the parentheses.  Because the redirection is performed only 
  2051. once, the commands will run slightly faster than if each command was entered 
  2052. separately.  The same approach can be used for input redirection and for 
  2053. piping. 
  2054.  
  2055. You can also use command grouping in a batch file or at the prompt to split 
  2056. commands over several lines.  This last example is like the redirection example 
  2057. above, but is entered at the prompt.  Note the "More?" prompt after each 
  2058. incomplete line.  None of the commands are executed until the command group is 
  2059. completed with the closing parenthesis.  This example does not have to be 
  2060. entered on one line: 
  2061.  
  2062.         [c:\] (echo Data files %_date
  2063.         More? dir *.dat
  2064.         More? echo.
  2065.         More? echo Text files %_date
  2066.         More? dir *.txt) > filelist
  2067.         [c:\]
  2068.  
  2069. A group of commands in parentheses is like a long command line.  The total 
  2070. length of the group may not exceed 2,047 characters, whether the commands are 
  2071. entered from the prompt, an alias, or a batch file.  The limit includes the 
  2072. space required to expand aliases and environment variables used within the 
  2073. group.  In addition, each line you type at the normal prompt or the More? 
  2074. prompt, and each individual command within the line, must meet the usual length 
  2075. limit of 1,023 characters. 
  2076.  
  2077.  
  2078. ΓòÉΓòÉΓòÉ 5.8. Escape Character ΓòÉΓòÉΓòÉ
  2079.  
  2080. 4OS2 recognizes a user-definable escape character.  This character gives the 
  2081. following character a special meaning; it is not the same as the ASCII ESC that 
  2082. is often used in ANSI and printer control sequences. 
  2083.  
  2084. The default escape character is a caret [^]. 
  2085.  
  2086. If you don't like using the default escape character, you can pick another 
  2087. character using the SETDOS /E command, the Options 1 page of the OPTION 
  2088. dialogs, or the EscapeChar directive in your .INI file.  If you plan to share 
  2089. aliases or batch files between 4OS2 and 4DOS, 4NT, or Take Command, see Special 
  2090. Character Compatibility for details about choosing compatible escape characters 
  2091. for two or more products. 
  2092.  
  2093. Ten special characters are recognized when they are preceded by the escape 
  2094. character.  The combination of the escape character and one of these characters 
  2095. is translated to a single character, as shown below.  These are primarily 
  2096. useful for redirecting codes to the printer; ^e is also useful to generate ANSI 
  2097. "escape sequences" in your PROMPT, ECHO, or other output commands.  The special 
  2098. characters which can follow the escape character are: 
  2099.  
  2100.         b   backspace 
  2101.         c   comma 
  2102.         e   the ASCII ESC character (ASCII 27) 
  2103.         f   form feed 
  2104.         k   back quote 
  2105.         n   line feed 
  2106.         q   double quote 
  2107.         r   carriage return 
  2108.         s   space 
  2109.         t   tab character 
  2110.  
  2111.  If you follow the escape character with any other character, the escape 
  2112.  character is removed and the second character is copied directly to the 
  2113.  command line.  This allows you to suppress the normal meaning of special 
  2114.  characters (such as ? * / \ | " ` > < and &). For example, to display a 
  2115.  message containing a > symbol, which normally indicates redirection: 
  2116.  
  2117.           [c:\] echo 2 is ^> 4
  2118.  
  2119.  To send a form feed followed by the sequence ESC Y to the printer, you can use 
  2120.  this command: 
  2121.  
  2122.           [c:\] echos ^f^eY > prn
  2123.  The escape character has an additional use when it is the last character on 
  2124.  any line of a .BAT or BTM batch file.  4OS2 recognizes this use of the escape 
  2125.  character to signal line continuation:  the command processor removes the 
  2126.  escape character and appends the next line to the current line before 
  2127.  executing it. 
  2128.  
  2129.  
  2130. ΓòÉΓòÉΓòÉ 6. Commands ΓòÉΓòÉΓòÉ
  2131.  
  2132. The best way to learn the 4OS2 commands is to experiment with them.  The lists 
  2133. below categorize the available commands by topic and will help you find the 
  2134. ones that you need. 
  2135.  
  2136. System configuration: 
  2137.  
  2138.         ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2139.         ΓöéCHCP         CLS          COLOR        DATE         DIRHISTORY  Γöé
  2140.         Γöé                                                                Γöé
  2141.         ΓöéFREE         HISTORY      KEYS         KEYBD        LOG         Γöé
  2142.         Γöé                                                                Γöé
  2143.         ΓöéMEMORY       OPTION       PROMPT       REBOOT       SETDOS      Γöé
  2144.         Γöé                                                                Γöé
  2145.         ΓöéTIME         VER          VERIFY       VOL                      Γöé
  2146.         ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2147.  
  2148.  File and directory management: 
  2149.  
  2150.         ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2151.         ΓöéATTRIB       COPY         DEL          DESCRIBE     LIST        Γöé
  2152.         Γöé                                                                Γöé
  2153.         ΓöéMOVE         REN          SELECT       TOUCH        TREE        Γöé
  2154.         Γöé                                                                Γöé
  2155.         ΓöéTYPE                                                            Γöé
  2156.         ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2157.  
  2158.  Subdirectory management: 
  2159.  
  2160.         ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2161.         ΓöéCD           CDD          DIR          DIRS         MD          Γöé
  2162.         Γöé                                                                Γöé
  2163.         ΓöéPOPD         PUSHD        RD                                    Γöé
  2164.         ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2165.  
  2166.  Input and output: 
  2167.  
  2168.         ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2169.         ΓöéDRAWBOX      DRAWHLINE    DRAWVLINE    ECHO         ECHOSERR    Γöé
  2170.         Γöé                                                                Γöé
  2171.         ΓöéECHOS        ECHOERR      INKEY        INPUT        KEYSTACK    Γöé
  2172.         Γöé                                                                Γöé
  2173.         ΓöéSCREEN       SCRPUT       TEXT         VSCRPUT                  Γöé
  2174.         ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2175.  
  2176.  Commands primarily for use in or with batch files and aliases: 
  2177.  (some work only in batch files; see the individual commands for details) 
  2178.  
  2179.         ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2180.         ΓöéALIAS        BEEP         CALL         CANCEL       DELAY       Γöé
  2181.         Γöé                                                                Γöé
  2182.         ΓöéDO           ENDLOCAL     FOR          GLOBAL       GOSUB       Γöé
  2183.         Γöé                                                                Γöé
  2184.         ΓöéGOTO         IF           IFF          LOADBTM      ON          Γöé
  2185.         Γöé                                                                Γöé
  2186.         ΓöéPAUSE        QUIT         REM          RETURN       SETLOCAL    Γöé
  2187.         Γöé                                                                Γöé
  2188.         ΓöéSHIFT        SWITCH       UNALIAS                               Γöé
  2189.         ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2190.  
  2191.  Environment and path commands: 
  2192.  
  2193.         ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2194.         ΓöéDPATH        ESET         PATH         SET          UNSET       Γöé
  2195.         ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2196.  
  2197.  Other commands: 
  2198.  
  2199.         ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2200.         Γöé?            ACTIVATE     DETACH       EXCEPT       EXIT        Γöé
  2201.         Γöé                                                                Γöé
  2202.         ΓöéFFIND        HELP         SHRALIAS     START        TEE         Γöé
  2203.         Γöé                                                                Γöé
  2204.         ΓöéTIMER        TITLE        WINDOW       Y                        Γöé
  2205.         ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2206.  
  2207.  
  2208. ΓòÉΓòÉΓòÉ 6.1. ? - List the internal commands ΓòÉΓòÉΓòÉ
  2209.  
  2210.  Purpose:    Display a list of internal commands or, prompt for a command. 
  2211.  
  2212.  Format:     ? ["prompt " command ] 
  2213.  
  2214.              prompt :  Prompt text about whether to execute the command. 
  2215.              command :  Command to be executed if user answers Y 
  2216.  
  2217.  Usage 
  2218.  
  2219.  ? has two functions.  When you use the ? command by itself, it displays a list 
  2220.  of internal commands.  If you have disabled a command with SETDOS /I, it will 
  2221.  not appear in the list. 
  2222.  
  2223.  The second function of ? is to prompt the user before executing a specific 
  2224.  line in a batch file.  If you add a prompt and a command, ? will display the 
  2225.  prompt followed by "(Y/N)?" and wait for the user's response.  If the user 
  2226.  presses "Y" or "y", the command line will be executed.  If the user presses 
  2227.  "N" or "n", the command line will be ignored. 
  2228.  
  2229.  For example, the following command might be used in a batch file: 
  2230.  
  2231.           ? Load the network call netstart.btm
  2232.  
  2233.  When this command is executed, you will see the following prompt; if you 
  2234.  answer "Y", the CALL command will be executed: 
  2235.  
  2236.           Load the network (Y/N)?
  2237.  
  2238.  
  2239. ΓòÉΓòÉΓòÉ 6.2. ACTIVATE - Activate a window ΓòÉΓòÉΓòÉ
  2240.  
  2241.  Purpose:    Activate a window, set its state, or change its title. 
  2242.  
  2243.  Format:     ACTIVATE "window " [MAX | MIN | RESTORE | CLOSE] 
  2244.  
  2245.              window :  Current title of window to work with. 
  2246.  
  2247.  See also:  START, TITLE, and WINDOW. 
  2248.  
  2249.  Usage 
  2250.  
  2251.  The name of the window must be enclosed in double quotes. 
  2252.  
  2253.  If no options are used, the window named in the command will become the active 
  2254.  window and be able to receive keystrokes and mouse commands. 
  2255.  
  2256.  The MAX option expands the window to its maximum size, the MIN option reduces 
  2257.  the window to an icon, and the RESTORE option returns the window to its 
  2258.  default size and location on the desktop.  The CLOSE option closes the window 
  2259.  and ends the session running in the window. 
  2260.  
  2261.  This example maximizes and then renames the window called "4OS2": 
  2262.  
  2263.           [c:\] activate "4OS2" max
  2264.           [c:\] activate "4OS2" "Command Prompt"
  2265.  
  2266.  You can use wildcards in the window name if you only know the first part of 
  2267.  the title.  This is useful with applications that change their window title to 
  2268.  reflect the file currently in use. 
  2269.  
  2270.  ACTIVATE is often used before KEYSTACK to make sure the proper window receives 
  2271.  the keystrokes.  ACTIVATE works by sending the appropriate messages to the 
  2272.  named window.  If the window ignores or misinterprets the messages, ACTIVATE 
  2273.  may not have the effect you want. 
  2274.  
  2275.  
  2276. ΓòÉΓòÉΓòÉ 6.3. ALIAS - Create or display aliases ΓòÉΓòÉΓòÉ
  2277.  
  2278.  Purpose:    Create new command names that execute one or more commands or 
  2279.              redefine default options for existing commands; assign commands to 
  2280.              keystrokes; load or display the list of defined alias names. 
  2281.  
  2282.  Format:     ALIAS [/P /R file ...] [name [=][value ]] 
  2283.  
  2284.              file :  One or more files to read for alias definitions. 
  2285.              name :  Name for an alias, or for the key to execute the alias. 
  2286.              value :  Text to be substituted for the alias name. 
  2287.  
  2288.              /P(ause)                        /R(ead file) 
  2289.  
  2290.  See also:  UNALIAS. 
  2291.  
  2292.  Usage 
  2293.  
  2294.  The ALIAS command lets you create new command names or redefine internal 
  2295.  commands.  It also lets you assign one or more commands to a single keystroke. 
  2296.  An alias is often used to execute a complex series of commands with a few 
  2297.  keystrokes or to create "in memory batch files" that run much faster than 
  2298.  disk-based batch files. 
  2299.  
  2300.  For example, to create a single-letter command D to display a wide directory, 
  2301.  instead of useing the longer DIR /W, you could use the command: 
  2302.  
  2303.           [c:\] alias d = dir /w
  2304.  
  2305.  Now when you type a single d as a command, it will be translated into a DIR /W 
  2306.  command. 
  2307.  
  2308.  If you define aliases for commonly used application programs, you can often 
  2309.  remove the directories they're stored in from the PATH. For example, if you 
  2310.  use Quattro Pro and had the C:\QPRO directory in your path, you could define 
  2311.  the following alias: 
  2312.  
  2313.           [c:\] alias qpro = c:\qpro\q.exe
  2314.  
  2315.  With this alias defined, you can probably remove C:\QPRO from your PATH. 
  2316.  Quattro Pro will now load more quickly than it would if 4OS2 had to search the 
  2317.  PATH for it.  In addition, the PATH can be shorter, which will speed up 
  2318.  searches for other programs. 
  2319.  
  2320.  If you apply this technique for each application program, you can often reduce 
  2321.  your PATH to just two or three directories containing utility programs, and 
  2322.  significantly reduce the time it takes to load most software on your system. 
  2323.  Before removing a directory from the PATH, you will need to define aliases for 
  2324.  all the executable programs you commonly use which are stored in that 
  2325.  directory. 
  2326.  
  2327.  Aliases are stored in memory, and are not saved automatically when you turn 
  2328.  off your computer or end your current session.  See below for information on 
  2329.  saving and reloading your aliases. 
  2330.  
  2331.  Multiple Commands and Special Characters in Aliases 
  2332.  
  2333.  An alias can represent more than one command.  For example: 
  2334.  
  2335.           [c:\] alias letters = `cd \letters & text`
  2336.  
  2337.  creates a new command called LETTERS.  The command first uses CD to change to 
  2338.  a subdirectory called \LETTERS and then runs a program called TEXT.  The 
  2339.  ampersand [&] is the command separator and indicates that the two commands are 
  2340.  distinct and should be executed sequentially. 
  2341.  
  2342.  Aliases make extensive use of the command separator, and the parameter 
  2343.  character, and may also use the escape character. These characters differ 
  2344.  between 4OS2, 4DOS, 4NT, and Take Command.  In the text and examples below, we 
  2345.  use the 4OS2 characters.  If you want to use the same aliases under different 
  2346.  command processors, see Special Character Compatibility. 
  2347.  
  2348.  When you type alias commands at the command line or in a batch file, you must 
  2349.  use back quotes [`] around the definition if it contains multiple commands, 
  2350.  parameters (discussed below), environment variables, redirection, or piping. 
  2351.  The back quotes prevent premature expansion of these arguments.  You may use 
  2352.  back quotes around other definitions, but they are not required. (You do not 
  2353.  need back quotes when your aliases are loaded from an ALIAS /R file; see below 
  2354.  for details.)  The examples above and below include back quotes only when they 
  2355.  are required. 
  2356.  
  2357.  Nested Aliases 
  2358.  
  2359.  Aliases may invoke internal commands, external commands, or other aliases. 
  2360.  (However, an alias may not invoke itself, except in special cases where an IF 
  2361.  or IFF command is used to prevent an infinite loop.)  The two aliases below 
  2362.  demonstrate alias nesting (one alias invoking another).  The first line 
  2363.  defines an alias which runs a program called WP.EXE that is in the E:\WP60\ 
  2364.  subdirectory.  The second alias changes directories with the PUSHD command, 
  2365.  runs the WP alias, and then returns to the original directory with the POPD 
  2366.  command: 
  2367.  
  2368.           [c:\] alias wp = e:\wp60\wp.exe
  2369.           [c:\] alias w = `pushd c:\wp & wp & popd`
  2370.  
  2371.  The second alias above could have included the full path and name of the 
  2372.  WP.EXE program instead of calling the WP alias. However, writing two aliases 
  2373.  makes the second one easier to read and understand, and makes the first alias 
  2374.  available for independent use.  If you rename the WP.EXE program or move it to 
  2375.  a new directory, only the first alias needs to be changed. 
  2376.  
  2377.  Temporarily Disabling Aliases 
  2378.  
  2379.  If you put an asterisk [*] immediately before a command in the value of an 
  2380.  alias definition (the part after the equal sign), it tells 4OS2 not to attempt 
  2381.  to interpret that command as another (nested) alias.  An asterisk used this 
  2382.  way must be preceded by a space or the command separator and followed 
  2383.  immediately by an internal or external command name. 
  2384.  
  2385.  By using an asterisk, you can redefine the default options for any internal or 
  2386.  external command.  For example, suppose that you always want to use the DIR 
  2387.  command with the /2 (two column) and /P (pause at the end of each page) 
  2388.  options.  The following line will do just that: 
  2389.  
  2390.           [c:\] alias dir = *dir /2/p
  2391.  
  2392.  If you didn't include the asterisk, the second DIR on the line would be the 
  2393.  name of the alias itself, and 4OS2 would repeatedly re- invoke the DIR alias, 
  2394.  rather than running the DIR command.  This would cause an "Alias loop" or 
  2395.  "Command line too long" error. 
  2396.  
  2397.  An asterisk also helps you keep the names of internal commands from 
  2398.  conflicting with the names of external programs.  For example, suppose you 
  2399.  have a program called LIST.COM.  Normally, the internal LIST command will run 
  2400.  anytime you type LIST.  But two simple aliases will give you access to both 
  2401.  the LIST.COM program and the LIST command: 
  2402.  
  2403.           [c:\] alias list = c:\util\list.com
  2404.           [c:\] alias display = *list
  2405.  
  2406.  The first line above defines LIST as an alias for the LIST.COM program.  If 
  2407.  you stopped there, the external program would run every time you typed LIST 
  2408.  and you would not have easy access to the internal LIST command.  The second 
  2409.  line renames the internal LIST command as DISPLAY.  The asterisk is needed in 
  2410.  the second command to indicate that the following word means the internal 
  2411.  command LIST, not the LIST alias which runs your external program. 
  2412.  
  2413.  Another way to understand the asterisk is to remember that a command is always 
  2414.  checked for an alias first, then for an internal or external command, or a 
  2415.  batch file.  The asterisk at the beginning of a command name simply skips over 
  2416.  the usual check for aliases when processing that command, and allows the 
  2417.  command processor to go straight to checking for an internal command, external 
  2418.  command, or batch file. 
  2419.  
  2420.  You can also use an asterisk before a command that you enter at the command 
  2421.  line or in a batch file.  If you do, that command won't be interpreted as an 
  2422.  alias.  This can be useful when you want to be sure you are running the true, 
  2423.  original command and not an alias with the same name, or temporarily defeat 
  2424.  the purpose of an alias which changes the meaning or behavior of a command. 
  2425.  
  2426.  You can also disable aliases temporarily with the SETDOS /X command. 
  2427.  
  2428.  Partial Alias Names 
  2429.  
  2430.  You can also use an asterisk in the name of an alias.  When you do, the 
  2431.  characters following the asterisk are optional when you invoke the alias 
  2432.  command.  (Use of an asterisk in the alias name is unrelated to the use of an 
  2433.  asterisk in the alias value discussed above.)  For example, with this alias: 
  2434.  
  2435.           [c:\] alias wher*eis = dir /sp
  2436.  
  2437.  the new command, WHEREIS, can be invoked as WHER, WHERE, WHEREI, or WHEREIS. 
  2438.  Now if you type: 
  2439.  
  2440.           [c:\] where myfile.txt
  2441.  
  2442.  The WHEREIS alias will be expanded to the command: 
  2443.  
  2444.           dir /sp myfile.txt
  2445.  
  2446.  Keystroke Aliases 
  2447.  
  2448.  If you want to assign an alias to a keystroke, use the keyname on the left 
  2449.  side of the equal sign, preceded by an at sign [@]. For example, to assign the 
  2450.  command DIR /W to the F5 key, type 
  2451.  
  2452.           [c:\] alias @F5 = dir /w
  2453.  
  2454.  See Keys and Key Names for a complete listing of key names and a description 
  2455.  of the key name format. 
  2456.  
  2457.  When you define keystroke aliases, the assignments will only be in effect at 
  2458.  the command line, not inside application programs.  Be careful not to assign 
  2459.  aliases to keys that are already used at the command line (like F1 for Help). 
  2460.  The command-line meanings take precedence and the keystroke alias will never 
  2461.  be invoked.  If you want to use one of the command-line keys for an alias 
  2462.  instead of its normal meaning, you must first disable its regular use with the 
  2463.  NormalKey or NormalEditKey directives in your .INI file. 
  2464.  
  2465.  If you define a keystroke alias with a single at sign as shown above, then, 
  2466.  when you press the F5 key, the value of the alias (DIR /W above) will be 
  2467.  placed on the command line for you.  You can type additional parameters if you 
  2468.  wish and then press Enter to execute the command.  With this particular alias, 
  2469.  you can define the files that you want to display after pressing F5 and before 
  2470.  pressing Enter to execute the command. 
  2471.  
  2472.  If you want the keystroke alias to take action automatically without waiting 
  2473.  for you to edit the command line or press Enter, you can begin the definition 
  2474.  with two at signs [@@]. 4OS2 will execute the alias "silently," without 
  2475.  displaying its text on the command line.  For example, this command will 
  2476.  assign an alias to the F6 key that uses the CDD command to take you back to 
  2477.  the previous default directory: 
  2478.  
  2479.           [c:\] alias @@f6 = cdd -
  2480.  
  2481.  When you define keystroke aliases, the assignments will only be in effect at 
  2482.  the command line, not inside application programs.  Be careful not to assign 
  2483.  aliases to keys that are already used at the command line (like F1 for Help). 
  2484.  The command-line meanings take precedence and the keystroke alias will never 
  2485.  be invoked.  If you want to use one of the command-line keys for an alias 
  2486.  instead of its normal meaning, you must first disable its regular use with the 
  2487.  NormalKey or NormalEditKey directives in your .INI file. 
  2488.  
  2489.  You can also define a keystroke alias by using "@" or "@@" plus a scan code 
  2490.  for one of the permissible keys (see the Reference Tables for a list of scan 
  2491.  codes).  In most cases it will be easier to use key names.  Scan codes should 
  2492.  only be used with unusual keyboards where a key name is not available for the 
  2493.  key you are using. 
  2494.  
  2495.  Displaying Aliases 
  2496.  
  2497.  If you want to see a list of all current ALIAS commands, type: 
  2498.  
  2499.           [c:\] alias
  2500.  
  2501.  You can also view the definition of a single alias.  For example, if you want 
  2502.  to see the definition of the alias LIST, you can type: 
  2503.  
  2504.           [c:\] alias list
  2505.  
  2506.  Saving and Reloading Your Aliases 
  2507.  
  2508.  You can save your aliases to a file called ALIAS.LST this way: 
  2509.  
  2510.           [c:\] alias > alias.lst
  2511.  
  2512.  You can then reload all the alias definitions in the file the next time you 
  2513.  boot up with the command: 
  2514.  
  2515.           [c:\] alias /r alias.lst
  2516.  
  2517.  This is much faster than defining each alias individually in a batch file.  If 
  2518.  you keep your alias definitions in a separate file which you load when your 
  2519.  system starts, you can edit them with a text editor, reload the edited file 
  2520.  with ALIAS /R, and know that the same alias list will be loaded the next time 
  2521.  you boot your computer. 
  2522.  
  2523.  When you define aliases in a file that will be read with the ALIAS /R command, 
  2524.  you do not need back quotes around the value, even if back quotes would 
  2525.  normally be required when defining the same alias at the command line or in a 
  2526.  batch file. 
  2527.  
  2528.  To remove an alias, use the UNALIAS command. 
  2529.  
  2530.  Alias Parameters 
  2531.  
  2532.  Aliases can use command-line arguments or parameters like those in batch 
  2533.  files.  The command-line arguments are numbered from %0 to %127.  %0 contains 
  2534.  the alias name.  It is up to the alias to determine the meaning of the other 
  2535.  parameters.  You can use quotation marks to pass spaces, tabs, commas, and 
  2536.  other special characters in an alias parameter; see Argument Quoting for 
  2537.  details. 
  2538.  
  2539.  Parameters that are referred to in an alias, but which are missing on the 
  2540.  command line, appear as empty strings inside the alias.  For example, if you 
  2541.  put two parameters on the command line, any reference in the alias to %3 or 
  2542.  any higher-numbered parameter will be interpreted as an empty string. 
  2543.  
  2544.  The parameter %n$ has a special meaning.  4OS2 interprets it to mean "the 
  2545.  entire command line, from argument n to the end."  If n is not specified, it 
  2546.  has a default value of 1, so %$ means "the entire command line after the alias 
  2547.  name."  The special parameter %# contains the number of command-line 
  2548.  arguments. 
  2549.  
  2550.  For example, the following alias will change directories, perform a command, 
  2551.  and return to the original directory: 
  2552.  
  2553.           [c:\] alias in `pushd %1 & %2$ & popd`
  2554.  
  2555.  When this alias is invoked as: 
  2556.  
  2557.           [c:\] in c:\comm mycomm /zmodem /56K
  2558.  
  2559.  the first parameter, %1, has the value c:\comm. %2 is mycomm, %3 is  /zmodem, 
  2560.  and %4 is /56K.  The command line expands into these three separate commands: 
  2561.  
  2562.           pushd c:\comm
  2563.           mycomm /zmodem /56K
  2564.           popd
  2565.  
  2566.  This next example uses the IFF command to redefine the defaults for SET.  It 
  2567.  should be entered on one line: 
  2568.  
  2569.           [c:\] alias set = `iff %# == 0 then & *set /p
  2570.                & else & *set %& & endiff`
  2571.  
  2572.  This modifies the SET command so that if SET is entered with no arguments, it 
  2573.  is replaced by SET /P (pause after displaying each page), but if SET is 
  2574.  followed by an argument, it behaves normally. Note the use of asterisks (*set) 
  2575.  to prevent alias loops. 
  2576.  
  2577.  If an alias uses parameters, command-line arguments will be deleted up to and 
  2578.  including the highest referenced argument.  For example, if an alias refers 
  2579.  only to %1 and %4, then the first and fourth arguments will be used, the 
  2580.  second and third arguments will be discarded, and any additional arguments 
  2581.  beyond the fourth will be appended to the expanded command (after the value 
  2582.  portion of the alias).  If an alias uses no parameters, all of the 
  2583.  command-line arguments will be appended to the expanded command. 
  2584.  
  2585.  Aliases also have full access to all variables in the environment, internal 
  2586.  variables, and variable functions.  For example, you can create a simple 
  2587.  command-line calculator this way: 
  2588.  
  2589.           [c:\] alias calc = `echo The answer is: %@eval[%&]`
  2590.  
  2591.  Now, if you enter: 
  2592.  
  2593.           [c:\] calc 5 * 6
  2594.  
  2595.  the alias will display: 
  2596.  
  2597.           The answer is: 30
  2598.  
  2599.  Expanding Aliases at the Prompt 
  2600.  
  2601.  You can expand an alias on the command line and view or edit the results by 
  2602.  pressing Ctrl-F after typing the alias name, but before the command is 
  2603.  executed.  This replaces the alias with its contents, and substitutes values 
  2604.  for each alias paramter, just as if you had pressed the Enter key.  However, 
  2605.  the command is not executed; it is simply redisplayed on the command line for 
  2606.  additional editing. 
  2607.  
  2608.  Ctrl-F is especially useful when you are developing and debugging a complex 
  2609.  alias, or if you want to make sure that an alias that you may have forgotten 
  2610.  won't change the effect of your command. 
  2611.  
  2612.  Local and Global Aliases 
  2613.  
  2614.  The aliases can be stored in either a "local" or "global" list. 
  2615.  
  2616.  With a local alias list, any changes made to the aliases will only affect the 
  2617.  current copy of 4OS2.  They will not be visible in other shells or other 
  2618.  sessions. 
  2619.  
  2620.  With a global alias list, all copies of 4OS2 will share the same alias list, 
  2621.  and any changes made to the aliases in one copy will affect all other copies. 
  2622.  This is the default. 
  2623.  
  2624.  You can control the type of alias list with the LocalAliases directive in the 
  2625.  .INI file, and with the /L and /LA options of the START command. 
  2626.  
  2627.  Whenever you start a secondary shell which uses a local alias list, it 
  2628.  inherits a copy of the aliases from the previous shell. However, any changes 
  2629.  to the aliases made in the secondary shell will affect only that shell.  If 
  2630.  you want changes made in a secondary shell to affect the previous shell, use a 
  2631.  global alias list in both shells. 
  2632.  
  2633.  Retaining Global Aliases with SHRALIAS 
  2634.  
  2635.  If you select a global alias list for 4OS2 you can share the aliases among all 
  2636.  copies of 4OS2 running in any session.  When you close all 4OS2 sessions, the 
  2637.  memory for the global alias list is released, and a new, empty alias list is 
  2638.  created the next time you start 4OS2. 
  2639.  
  2640.  If you want the alias list to be retained in memory even when no command 
  2641.  processor session is running, execute the SHRALIAS command, which loads a 
  2642.  program to perform this service for the global alias list, the global command 
  2643.  history list, and the global directory history. 
  2644.  
  2645.  You may find it convenient to execute SHRALIAS from your 4START file, or from 
  2646.  STARTUP.CMD. 
  2647.  
  2648.  SHRALIAS retains the alias list in memory, but cannot preserve it when OS/2 
  2649.  itself is shut down.  To save your aliases when restarting OS/2, you must 
  2650.  store them in a file and reload them after the system restarts.  For details 
  2651.  on how to do so, see Saving and Reloading Your Aliases (above). 
  2652.  
  2653.  The UNKNOWN_CMD Alias 
  2654.  
  2655.  If you create an alias with the name UNKNOWN_CMD, it will be executed any time 
  2656.  4OS2 would normally issue an "Unknown command" error message.  This allows you 
  2657.  to define your own handler for unknown commands.  When the UNKNOWN_CMD alias 
  2658.  is executed, the command line which generated the error is passed to the alias 
  2659.  for possible processing.  For example, to display the command that caused the 
  2660.  error: 
  2661.  
  2662.           alias unknown_cmd `echo Error in command "%&"`
  2663.  
  2664.  If the UNKNOWN_CMD alias contains an unknown command, it will call itself 
  2665.  repeatedly.  If this occurs, the command processor will loop up to 10 times, 
  2666.  then display an "UKNOWN_CMD loop" error. 
  2667.  
  2668.  Options 
  2669.  
  2670.     /P:     (Pause) This option is only effective when ALIAS is used to display 
  2671.             existing definitions.  It pauses the display after each page and 
  2672.             waits for a keystroke before continuing (see Page and File 
  2673.             Prompts). 
  2674.  
  2675.     /R:     (Read file) This option loads an alias list from a file. The format 
  2676.             of the file is the same as that of the ALIAS display: 
  2677.  
  2678.                                 name=value
  2679.  
  2680.             where name is the name of the alias and value is its value.  You 
  2681.             can use an equal sign [=] or space to separate the name and value. 
  2682.             Back quotes are not required around the value.  You can add 
  2683.             comments to the file by starting each comment line with a colon 
  2684.             [:].  You can load multiple files with one ALIAS /R command by 
  2685.             placing the names on the command line, separated by spaces: 
  2686.  
  2687.                                 [c:\] alias /r alias1.lst alias2.lst
  2688.  
  2689.             Each definition in an ALIAS /R file can be up to 2047 characters 
  2690.             long. The definitions can span multiple lines in the file if each 
  2691.             line, except the last, is terminated with an escape character. 
  2692.  
  2693.  
  2694. ΓòÉΓòÉΓòÉ 6.4. ATTRIB - Change or view file attributes ΓòÉΓòÉΓòÉ
  2695.  
  2696.  Purpose:    Change or view file and subdirectory attributes. 
  2697.  
  2698.  Format:     ATTRIB [/A:[[-]rhsda] /D /E /P /Q /S] [+|-[AHRS]] file ... 
  2699.  
  2700.              file :  A file, directory, or list of files or directories on 
  2701.              which to operate. 
  2702.  
  2703.              /A: (Attribute select)          /P(ause) 
  2704.              /D(irectories)                  /Q(uiet) 
  2705.              /E (No error messages)          /S(ubdirectories) 
  2706.  
  2707.              Attribute flags: 
  2708.  
  2709.              +A      Set the archive attribute 
  2710.              -A      Clear the archive attribute 
  2711.              +H      Set the hidden attribute 
  2712.              -H      Clear the hidden attribute 
  2713.              +R      Set the read-only attribute 
  2714.              -R      Clear the read-only attribute 
  2715.              +S      Set the system attribute 
  2716.              -S      Clear the system attribute 
  2717.  
  2718.  File Selection 
  2719.  
  2720.  Supports extended wildcards, ranges, multiple file names, and include lists. 
  2721.  
  2722.  Usage 
  2723.  
  2724.  Every file and subdirectory has 4 attributes that can be turned on (set) or 
  2725.  turned off (cleared):  Archive, Hidden, Read- only, and System. 
  2726.  
  2727.  The ATTRIB command lets you view, set, or clear attributes for any file, group 
  2728.  of files, or subdirectory.  You can view file attributes by entering ATTRIB 
  2729.  without specifying new attributes (i.e., without the [+|-[AHRS]] part of the 
  2730.  format), or with the DIR /T command. 
  2731.  
  2732.  You can view file attributes by entering ATTRIB without specifying new 
  2733.  attributes (i.e., without the [+|-[AHRS]] part of the format).  (You can also 
  2734.  view file attributes with the DIR /T command.) 
  2735.  
  2736.  The primary use of ATTRIB is to set attributes.  For example, you can set the 
  2737.  read-only and hidden attributes for the file MEMO: 
  2738.  
  2739.           [c:\] attrib +rh memo
  2740.  
  2741.  Attribute options apply to the file(s) that follow the options on the ATTRIB 
  2742.  command line.  The example below shows how to set different attributes on 
  2743.  different files with a single command.  It sets the archive attribute for all 
  2744.  .TXT files, then sets the system attribute and clears the archive attribute 
  2745.  for TEST.COM : 
  2746.  
  2747.           [c:\] attrib +a *.txt +s -a test.com
  2748.  
  2749.  When you use ATTRIB on an HPFS drive, you must quote any file names which 
  2750.  contain whitespace or special characters.  See File Names for additional 
  2751.  details. 
  2752.  
  2753.  To change directory attributes, use the /D switch.  If you give ATTRIB a 
  2754.  directory name instead of a file name, and omit /D, it will append "\*.*" to 
  2755.  the end of the name and act on all files in that directory, rather than acting 
  2756.  on the directory itself. 
  2757.  
  2758.  Your operating system also supports "D" (subdirectory) and "V" (volume label) 
  2759.  attributes.  These attributes cannot be altered with ATTRIB; they are designed 
  2760.  to be controlled only by the operating system itself. 
  2761.  
  2762.  ATTRIB will ignore underlines in the new attribute (the [+|-[AHRS]] part of 
  2763.  the command).  For example, ATTRIB sees these two commands as identical: 
  2764.  
  2765.           [c:\] attrib +a filename
  2766.           [c:\] attrib +__A_ filename
  2767.  
  2768.  This allows you to use a string of attributes from either the @ATTRIB variable 
  2769.  function or from ATTRIB itself (both of which use underscores to represent 
  2770.  attributes that are not set) and send that string back to ATTRIB to set 
  2771.  attributes for other files.  For example, to clear the attributes of FILE2 and 
  2772.  then set its attributes to match those of FILE1 (enter this on one line): 
  2773.  
  2774.           [c:\] attrib -arhs file2 & attrib +%@attrib[file1] file2
  2775.  
  2776.  Options 
  2777.  
  2778.     /A::    (Attribute select) Select only those files that have the specified 
  2779.             attribute(s) set.  Preceding the attribute character with a hyphen 
  2780.             [-] will select files that do not have that attribute set.  The 
  2781.             colon [:] after /A is required.  The attributes are: 
  2782.  
  2783.                            R  Read-only 
  2784.                            H  Hidden 
  2785.                            S  System 
  2786.                            D  Subdirectory 
  2787.                            A  Archive 
  2788.  
  2789.             If no attributes are listed at all (e.g., ATTRIB /A: ...), ATTRIB 
  2790.             will select all files and subdirectories including hidden and 
  2791.             system files.  If attributes are combined, all the specified 
  2792.             attributes must match for a file to be selected. For example, 
  2793.             /A:RHS will select only those files with all three attributes set. 
  2794.  
  2795.             The /A: switch specifies which files to select, not which 
  2796.             attributes to set.  For example, to remove the archive attribute 
  2797.             from all hidden files, you could use this command: 
  2798.  
  2799.                                 [c:\] attrib /a:h -a *.*
  2800.  
  2801.     /D:     (Directories) If you use the /D option, ATTRIB will modify the 
  2802.             attributes of subdirectories in addition to files (yes, you can 
  2803.             have a hidden subdirectory): 
  2804.  
  2805.                                 [c:\] attrib /d +h c:\mydir
  2806.  
  2807.             If you use a directory name instead of a file name, and omit /D, 
  2808.             ATTRIB will append "\*.*" to the end of the name and act on all 
  2809.             files in that directory, rather than acting on the directory 
  2810.             itself. 
  2811.  
  2812.     /E:     (No error messages) Suppress all non-fatal error messages, such as 
  2813.             "File Not Found."  Fatal error messages, such as "Drive not ready," 
  2814.             will still be displayed.  This option is most useful in batch files 
  2815.             and aliases. 
  2816.  
  2817.     /P:     (Pause) Wait for a key to be pressed after each screen page before 
  2818.             continuing the display.  Your options at the prompt are explained 
  2819.             in detail under Page and File Prompts. 
  2820.  
  2821.     /Q:     (Quiet) This option turns off ATTRIB's normal screen output. It is 
  2822.             most useful in batch files. 
  2823.  
  2824.     /S:     (Subdirectories) If you use the /S option, the ATTRIB command will 
  2825.             be applied to all matching files in the current or named directory 
  2826.             and all of its subdirectories. 
  2827.  
  2828.  
  2829. ΓòÉΓòÉΓòÉ 6.5. BEEP - Beep the speaker ΓòÉΓòÉΓòÉ
  2830.  
  2831.  Purpose:    Beep the speaker or play simple music. 
  2832.  
  2833.  Format:     BEEP [frequency duration ...] 
  2834.  
  2835.              frequency :  The beep frequency in Hertz (cycles per second). 
  2836.              duration :  The beep length in 1/18th second intervals. 
  2837.  
  2838.  Usage 
  2839.  
  2840.  BEEP generates a sound through your computer's speaker.  It is normally used 
  2841.  in batch files to signal that an operation has been completed, or that the 
  2842.  computer needs attention. 
  2843.  
  2844.  Because BEEP allows you to specify the frequency and duration of the sound, 
  2845.  you can also use it to play simple music or to create different kinds of 
  2846.  signals for the user. 
  2847.  
  2848.  You can include as many frequency and duration pairs as you wish. No sound 
  2849.  will be generated for frequencies less than 20 Hz, allowing you to use BEEP as 
  2850.  a way to create short delays.  The default value for frequency is 440 Hz; the 
  2851.  default value for duration is 2. 
  2852.  
  2853.  This batch file fragment runs a program called DEMO, then plays a few notes 
  2854.  and waits for you to press a key: 
  2855.  
  2856.           demo & beep 440 4  600 2  1040 6
  2857.           pause Finished with the demo - hit a key...
  2858.  
  2859.  The following table gives the frequency values for a five octave range (middle 
  2860.  C is 262 Hz): 
  2861.  
  2862.           ΓòöΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòñΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòñΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòñΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòñΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòñΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòù
  2863.           Γòæ C      Γöé  131  Γöé  262  Γöé  523  Γöé  1046  Γöé  2093 Γòæ
  2864.           Γòæ C#/Db  Γöé  139  Γöé  277  Γöé  554  Γöé  1108  Γöé  2217 Γòæ
  2865.           Γòæ D      Γöé  147  Γöé  294  Γöé  587  Γöé  1175  Γöé  2349 Γòæ
  2866.           Γòæ D#/Eb  Γöé  156  Γöé  311  Γöé  622  Γöé  1244  Γöé  2489 Γòæ
  2867.           Γòæ E      Γöé  165  Γöé  330  Γöé  659  Γöé  1318  Γöé  2637 Γòæ
  2868.           Γòæ F      Γöé  175  Γöé  349  Γöé  698  Γöé  1397  Γöé  2794 Γòæ
  2869.           Γòæ F#/Gb  Γöé  185  Γöé  370  Γöé  740  Γöé  1480  Γöé  2960 Γòæ
  2870.           Γòæ G      Γöé  196  Γöé  392  Γöé  784  Γöé  1568  Γöé  3136 Γòæ
  2871.           Γòæ G#/Ab  Γöé  208  Γöé  415  Γöé  831  Γöé  1662  Γöé  3322 Γòæ
  2872.           Γòæ A      Γöé  220  Γöé  440  Γöé  880  Γöé  1760  Γöé  3520 Γòæ
  2873.           Γòæ A#/Bb  Γöé  233  Γöé  466  Γöé  932  Γöé  1866  Γöé  3729 Γòæ
  2874.           Γòæ B      Γöé  248  Γöé  494  Γöé  988  Γöé  1973  Γöé  3951 Γòæ
  2875.           ΓòÜΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòºΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòºΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòºΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòºΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòºΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓòÉΓò¥
  2876.  
  2877.  
  2878. ΓòÉΓòÉΓòÉ 6.6. CALL - Execute one batch file from another ΓòÉΓòÉΓòÉ
  2879.  
  2880.  Purpose:    Execute one batch file from within another. 
  2881.  
  2882.  Format:     CALL [/Q] file 
  2883.  
  2884.              file :  The batch file to execute. 
  2885.  
  2886.              /Q(uiet) 
  2887.  
  2888.  See also:  CANCEL and QUIT. 
  2889.  
  2890.  Usage 
  2891.  
  2892.  CALL allows batch files to call other batch files (batch file nesting).  The 
  2893.  calling batch file is suspended while the called (second) batch file runs. 
  2894.  When the second batch file finishes, the original batch file resumes execution 
  2895.  at the next command.  If you execute a batch file from inside another batch 
  2896.  file without using CALL, the first batch file is terminated before the second 
  2897.  one starts. 
  2898.  
  2899.  The following batch file fragment compares an input line to "wp" and calls 
  2900.  another batch file if it matches: 
  2901.  
  2902.           input  Enter your choice:  %%option
  2903.           if "%option" == "wp" call wp.bat
  2904.  
  2905.  4OS2 supports batch file nesting up to ten levels deep. 
  2906.  
  2907.  The current ECHO state is inherited by a called batch file, except when the 
  2908.  /Q. 
  2909.  
  2910.  The called batch file should always either return (by executing its last line, 
  2911.  or using the QUIT command), or terminate batch file processing with CANCEL. 
  2912.  Do not restart or CALL the original batch file from within the called file as 
  2913.  this may cause an infinite loop or a stack overflow. 
  2914.  
  2915.  CALL returns an exit code which matches the batch file return code. You can 
  2916.  test this exit code with the %_? or %? environment variable, and use it with 
  2917.  conditional commands. 
  2918.  
  2919.  Options 
  2920.  
  2921.     /Q:     (Quiet) Starts the new batch file with echo off, regardless of the 
  2922.             current batch file's echo state.  This switch is provided for 
  2923.             compatibility with OS/2's CMD.EXE. 
  2924.  
  2925.  
  2926. ΓòÉΓòÉΓòÉ 6.7. CANCEL - Terminate batch file processing ΓòÉΓòÉΓòÉ
  2927.  
  2928.  Purpose:    Terminate batch file processing. 
  2929.  
  2930.  Format:     CANCEL [value ] 
  2931.  
  2932.              value :  The  numeric exit code to return to 4OS2. 
  2933.  
  2934.  See also:  CALL and QUIT. 
  2935.  
  2936.  Usage 
  2937.  
  2938.  The CANCEL command ends all batch file processing, regardless of the batch 
  2939.  file nesting level.  Use QUIT to end a nested batch file and return to the 
  2940.  previous batch file. 
  2941.  
  2942.  You can CANCEL at any point in a batch file.  If CANCEL is used from within an 
  2943.  alias it will end execution of both the alias and any batch files which are 
  2944.  running at the time. 
  2945.  
  2946.  The following batch file fragment compares an input line to "end" and 
  2947.  terminates all batch file processing if it matches: 
  2948.  
  2949.           input Enter your choice:  %%option
  2950.           if "%option" == "end" cancel
  2951.  
  2952.  If you specify a value, CANCEL will set the ERRORLEVEL or exit code to that 
  2953.  value (see the IF command, and the %? variable). 
  2954.  
  2955.  
  2956. ΓòÉΓòÉΓòÉ 6.8. CD - Change the current directory ΓòÉΓòÉΓòÉ
  2957.  
  2958.  Purpose:    Display or change the current directory. 
  2959.  
  2960.  Format:     CD [/N] [ path | - ] 
  2961.                 or 
  2962.              CHDIR [/N] [ path | - ] 
  2963.  
  2964.              path :  The directory to change to, including an optional drive 
  2965.              name. 
  2966.  
  2967.              /N(o extended search) 
  2968.  
  2969.  See also:  CDD, MD, PUSHD, RD, CDPATH, and Directory Navigation. 
  2970.  
  2971.  Usage 
  2972.  
  2973.  CD and CHDIR are synonyms.  You can use either one. 
  2974.  
  2975.  CD lets you navigate through a drive's structure by changing the current 
  2976.  working directory.  If you enter CD and a directory name, the named directory 
  2977.  becomes the new current directory.  For example, to change to the subdirectory 
  2978.  C:\FINANCE\MYFILES : 
  2979.  
  2980.           [c:\] cd \finance\myfiles
  2981.           [c:\finance\myfiles]
  2982.  
  2983.  Every disk drive on the system has its own current directory. Specifying both 
  2984.  a drive and a directory in the CD command will change the current directory on 
  2985.  the specified drive, but will not change the default drive.  For example, to 
  2986.  change the default directory on drive A: 
  2987.  
  2988.           [c:\] cd a:\utility
  2989.           [c:\]
  2990.  
  2991.  Notice that this command does not change to drive A:.  Use the CDD command to 
  2992.  change the current drive and directory at the same time. 
  2993.  
  2994.  When you use CD to change to a directory on an HPFS drive, you must quote the 
  2995.  path name if it contains whitespace or special characters.  See File Names and 
  2996.  File Systems for additional details. 
  2997.  
  2998.  You can change to the parent directory with CD ..; you can also go up one 
  2999.  additional directory level with each additional [.]. For example, CD .... will 
  3000.  go up three levels in the directory tree (see Extended Parent Directory 
  3001.  Names).  You can move to a sibling directory -- one that branches from the 
  3002.  same parent directory as the current subdirectory -- with a command like CD 
  3003.  ..\newdir. 
  3004.  
  3005.  If you enter CD with no argument or with only a disk drive name, it will 
  3006.  display the current directory on the default or named drive. 
  3007.  
  3008.  If CD cannot change to the directory you have specified it will attempt to 
  3009.  search the CDPATH and the extended directory search database in order to find 
  3010.  a matching directory and switch to it.  You can use wildcards in the path to 
  3011.  force an extended directory search.  See the section on Directory Navigation 
  3012.  for complete details on these and other directory navigation features.  To 
  3013.  disable extended directory searches for the current command (e.g. in a batch 
  3014.  file) see the /N option below. 
  3015.  
  3016.  CD saves the current directory before changing to a new directory. You can 
  3017.  switch back to the previous directory by entering CD - (there must be a space 
  3018.  between the CD command and the hyphen).  You can switch back and forth between 
  3019.  two directories by repeatedly entering CD -.  The saved directory is the same 
  3020.  for both the CD and CDD commands.  Drive changes and automatic directory 
  3021.  changes also modify the saved directory, so you can use CD - to return to a 
  3022.  directory that you exited with an automatic directory change. 
  3023.  
  3024.  Directory changes made with CD are also recorded in the directory history list 
  3025.  and can be displayed in the directory history window, which allows you to 
  3026.  return quickly to a recently-used directory. 
  3027.  
  3028.  CD never changes the default drive.  If you change directories on one drive, 
  3029.  switch to another drive, and then enter CD -, the directory will be restored 
  3030.  on the first drive but the current drive will not be changed. 
  3031.  
  3032.  Option 
  3033.  
  3034.     /N:     (No extended search) This option prevents CD from searching the 
  3035.             extended directory search database or displaying the related popup 
  3036.             window.  If /N is used and the specified directory is not found via 
  3037.             other methods (i.e. without an extended search), CD will display an 
  3038.             error. This option is primarily intended for use in batch files 
  3039.             where you do not want CD to use "fuzzy" directory searching or 
  3040.             display an extended search popup window. 
  3041.  
  3042.  
  3043. ΓòÉΓòÉΓòÉ 6.9. CDD - Change the current drive and directory ΓòÉΓòÉΓòÉ
  3044.  
  3045.  Purpose:    Change the current disk drive and directory. 
  3046.  
  3047.  Format:     CDD [/A /N /S[drive ...]] [path | - ] 
  3048.  
  3049.              path :  The name of the directory (or drive and directory) to 
  3050.              change to. 
  3051.              drive :  A drive or list of drives to include in the extended 
  3052.              directory search database. 
  3053.  
  3054.              /A(ll drives)                   /N(o extended search) 
  3055.              /S(earch tree) 
  3056.  
  3057.  See also:  CD, MD, PUSHD, RD, CDPATH, and Directory Navigation. 
  3058.  
  3059.  Usage 
  3060.  
  3061.  CDD is similar to the CD command, except that it also changes the default disk 
  3062.  drive if one is specified.  CDD will change to the directory and drive you 
  3063.  name.  To change from the root directory on drive A to the subdirectory C:\WP: 
  3064.  
  3065.           [a:\] cdd c:\wp
  3066.           [c:\wp]
  3067.  
  3068.  You can change to the parent directory with CDD ..; you can also go up one 
  3069.  additional directory level with each additional [.].  For example, CDD .... 
  3070.  will go up three levels in the directory tree (see Extended Parent Directory 
  3071.  Names). 
  3072.  
  3073.  CDD can also change to a network drive and directory specified with a UNC name 
  3074.  (see File Systems for more information about network directories). 
  3075.  
  3076.  When you use CDD to change to a directory on an HPFS drive, you must quote the 
  3077.  path name if it contains whitespace or special characters.  See File Names and 
  3078.  File Systems for additional details. 
  3079.  
  3080.  If CDD cannot change to the directory you have specified it will attempt to 
  3081.  search the CDPATH and the extended directory search database in order to find 
  3082.  a matching directory and switch to it.  You can also use wildcards in the path 
  3083.  to force an extended directory search.  See the section on Directory 
  3084.  Navigation for complete details on these and other directory navigation 
  3085.  features.  To disable extended directory searches for the current command 
  3086.  (e.g. in a batch file) see the /N option below. 
  3087.  
  3088.  CDD saves the current drive and directory before changing to a new directory. 
  3089.  You can switch back to the previous drive and directory by entering CDD - 
  3090.  (there must be a space between the CDD command and the hyphen).  You can 
  3091.  switch back and forth between two drives and directories by repeatedly 
  3092.  entering CDD -.  The saved directory is the same for both the CD and CDD 
  3093.  commands.  Drive changes and automatic directory changes also modify the saved 
  3094.  directory, so you can use CDD - to return to a directory that you exited with 
  3095.  a drive change or an automatic directory change. 
  3096.  
  3097.  Directory changes made with CDD are also recorded in the directory history 
  3098.  list and can be displayed in the directory history window, which allows you to 
  3099.  return quickly to a recently-used directory. 
  3100.  
  3101.  Options 
  3102.  
  3103.     /A:     (All drives) When CDD is used with this option, it displays the 
  3104.             current directory on all drives from C: to the last drive in the 
  3105.             system.  You cannot move to a new drive and directory and use /A in 
  3106.             the same command. 
  3107.  
  3108.     /N:     (No extended search) This option prevents CD from searching the 
  3109.             extended directory search database or displaying the related popup 
  3110.             window.  If /N is used and the specified directory is not found via 
  3111.             other methods (i.e. without an extended search), CD will display an 
  3112.             error. This option is primarily intended for use in batch files 
  3113.             where you do not want CD to use "fuzzy" directory searching or 
  3114.             display an extended search popup window. 
  3115.  
  3116.     /S:     (Search tree) Builds or rebuilds the Extended Directory Search 
  3117.             database, JPSTREE.IDX.  You cannot move to a new drive and 
  3118.             directory and use /S in the same command. 
  3119.  
  3120.             To include all local hard drives in the database use the command: 
  3121.  
  3122.                                 cdd /s
  3123.  
  3124.             To limit or add to the list of drives included in the database, 
  3125.             list the drives and network volume names after the /S switch.  For 
  3126.             example, to include drives C, D, E, and the network volume 
  3127.             \\server\dir1 in the database, use this command: 
  3128.  
  3129.                                 cdd /s cde \\server\dir1
  3130.  
  3131.             All non-hidden directories on the listed drives will be indexed; 
  3132.             you cannot restrict the database to certain directories within a 
  3133.             drive.  Each time you use /S, everything in the previous directory 
  3134.             database is replaced by the new database that is created. 
  3135.  
  3136.  
  3137. ΓòÉΓòÉΓòÉ 6.10. CHCP - Change the current code page ΓòÉΓòÉΓòÉ
  3138.  
  3139.  Purpose:    Display or change the current system code page. 
  3140.  
  3141.  Format:     CHCP [n ] 
  3142.  
  3143.              n :  A system code page number. 
  3144.  
  3145.  Usage 
  3146.  
  3147.  Code page switching allows you to select different character sets for language 
  3148.  support. 
  3149.  
  3150.  If you enter CHCP without a number, the current code page is displayed. 
  3151.  
  3152.           [c:\] chcp
  3153.           Active code page: 437
  3154.  
  3155.  If you enter CHCP plus a code page number, the system code page is changed. 
  3156.  For example, to set the code page to multilingual: 
  3157.  
  3158.           [c:\] chcp 850
  3159.  
  3160.  CHCP only affects the current 4OS2 session, and any new programs started from 
  3161.  within that session; the active code page in other sessions remains unchanged. 
  3162.  
  3163.  CHCP accepts one of the prepared system code pages.  An error message is 
  3164.  displayed if a code page is selected that has not been prepared for the 
  3165.  system. 
  3166.  
  3167.  See your OS/2 documentation for more information on CHCP. 
  3168.  
  3169.  
  3170. ΓòÉΓòÉΓòÉ 6.11. CLS - Clear the screen ΓòÉΓòÉΓòÉ
  3171.  
  3172.  Purpose:    Clear the video display and move the cursor to the upper left 
  3173.              corner; optionally change the default display and border colors. 
  3174.  
  3175.  Format:     CLS [[BRIght] [BLInk] fg ON [BRIght] bg ] [BORder bc ] 
  3176.  
  3177.              fg :  The new foreground color 
  3178.              bg :  The new background color 
  3179.              bc :  The new border color 
  3180.  
  3181.  Usage 
  3182.  
  3183.  CLS can be used to clear the screen without changing colors, or to clear the 
  3184.  screen and change the screen colors simultaneously. These three examples show 
  3185.  how to clear the screen to the default colors, to bright white letters on a 
  3186.  blue background, and to bright yellow letters on a magenta background with a 
  3187.  blue border: 
  3188.  
  3189.           [c:\] cls
  3190.           [c:\] cls bright white on blue
  3191.           [c:\] cls bri yel on mag bor blu
  3192.  
  3193.  CLS is often used in batch files to clear the screen before displaying text. 
  3194.  
  3195.  See Colors and Color Names for details about colors and notes on the use of 
  3196.  bright background colors. 
  3197.  
  3198.  
  3199. ΓòÉΓòÉΓòÉ 6.12. COLOR - Change the display colors ΓòÉΓòÉΓòÉ
  3200.  
  3201.  Purpose:    Change the default display colors. 
  3202.  
  3203.  Format:     COLOR [BRIght] [BLInk] fg ON [BRIght] bg [BORder bc ] 
  3204.  
  3205.              fg :  The new foreground color 
  3206.              bg :  The new background color 
  3207.              bc :  The new border color 
  3208.  
  3209.  See also:  CLS, and Colors and Color Names for details about using colors. 
  3210.  
  3211.  Usage 
  3212.  
  3213.  COLOR is normally used in batch files before displaying text. For example, to 
  3214.  set screen colors to bright white on blue, you can use this command: 
  3215.  
  3216.           [c:\] color bright white on blue
  3217.  
  3218.  
  3219. ΓòÉΓòÉΓòÉ 6.13. COPY - Copy files ΓòÉΓòÉΓòÉ
  3220.  
  3221.  Purpose:    Copy data between disks, directories, files, or physical hardware 
  3222.              devices (such as your printer or serial port). 
  3223.  
  3224.  Format:     COPY [/A:[[-]rhsda] /C /E /F /H /K /M /N /P /Q /R /S /T /U /V /X 
  3225.              /Z] source [+] ... [/A /B] destination [/A /B] 
  3226.  
  3227.              source :  A file or list of files or a device to copy from . 
  3228.              destination :  A file, directory, or device to copy to . 
  3229.  
  3230.              /A(SCII)                        /P(rompt) 
  3231.              /A: (Attribute select)          /Q(uiet) 
  3232.              /B(inary)                       /R(eplace) 
  3233.              /C(hanged)                      /S(ubdirectories) 
  3234.              /E (no Error messages)          /T(otals) 
  3235.              /F(ail on EA error)             /U(update) 
  3236.              /H(idden)                       /V(erify) 
  3237.              /K(eep attributes)              /X (clear archive) 
  3238.              /M(odified)                     /Z (overwrite) 
  3239.              /N(othing) 
  3240.  
  3241.  See also:  ATTRIB, MOVE, and REN. 
  3242.  
  3243.  File Selection 
  3244.  
  3245.  Supports extended wildcards, ranges, multiple file names, and include lists. 
  3246.  Date, time, size, or exclude ranges anywhere on the line apply to all source 
  3247.  files. 
  3248.  
  3249.  Usage 
  3250.  
  3251.  The COPY command accepts all traditional syntax and options and adds many new 
  3252.  features. 
  3253.  
  3254.  The simplest use of COPY is to make a copy of a file, like this example which 
  3255.  makes a copy of a file called FILE1.ABC : 
  3256.  
  3257.           [c:\] copy file1.abc file2.def
  3258.  
  3259.  You can also copy a file to another drive and/or directory.  The following 
  3260.  command copies FILE1 to the \MYDIR directory on drive E: 
  3261.  
  3262.           [c:\] copy file1 e:\mydir
  3263.  
  3264.  You can copy several files at once by using wildcards: 
  3265.  
  3266.           [c:\] copy *.txt e:\mydir
  3267.  
  3268.  When you COPY files to or from an HPFS drive, you must quote the path name if 
  3269.  it contains whitespace or special characters.  See File Names and File Systems 
  3270.  for additional details. 
  3271.  
  3272.  Copying Files 
  3273.  
  3274.  You can copy several files at once by using wildcards: 
  3275.  
  3276.           [c:\] copy *.txt e:\mydir
  3277.  
  3278.  You can also list several source files in one command.  The following command 
  3279.  copies 3 files from the current directory to the \MYDIR directory on drive E: 
  3280.  
  3281.           [c:\] copy file1 file2 file3 e:\mydir
  3282.  
  3283.  COPY also understands include lists, so you can specify several different 
  3284.  kinds of files in the same command.  This command copies the .TXT,  .DOC, and 
  3285.  .BAT files from the E:\MYDIR directory to the root directory of drive A: 
  3286.  
  3287.           [c:\] copy e:\mydir\*.txt;*.doc;*.bat a:\
  3288.  
  3289.  If there is only one argument on the line, COPY assumes it is the source, and 
  3290.  uses the current drive and directory as the destination.  For example, the 
  3291.  following command copies all the .DAT files on drive A to the current 
  3292.  directory on drive C: 
  3293.  
  3294.           [c:\data] copy a:*.dat
  3295.  
  3296.  If there are two or more arguments on the line, separated by spaces, then COPY 
  3297.  assumes that the last argument is the destination and copies all source files 
  3298.  to this new location.  If the destination is a drive, directory, or device 
  3299.  name then the source files are copied individually to the new location.  If 
  3300.  the destination is a file name, the first source file is copied to the 
  3301.  destination, and any additional source files are then appended to the new 
  3302.  destination file. 
  3303.  
  3304.  For example, the first of these commands copies the .DAT files from the 
  3305.  current directory on drive A individually to C:\MYDIR (which must already 
  3306.  exist as a directory); the second appends all the .DAT files together into one 
  3307.  large file called C:\DATA (assuming C:\DATA is not a directory): 
  3308.  
  3309.           [c:\] copy a:*.dat c:\mydir\
  3310.           [c:\] copy a:*.dat c:\data
  3311.  
  3312.  When you copy to a directory, if you add a backslash [\] to the end of the 
  3313.  name as shown in the first example above, COPY will display an error message 
  3314.  if the name does not refer to an existing directory.  You can use this feature 
  3315.  to keep COPY from treating a mistyped destination directory name as a file 
  3316.  name and attempting to append all your source files to a destination file, 
  3317.  when you really meant to copy them individually to a destination directory. 
  3318.  
  3319.  To copy a file to a device such as the printer, use the device name as the 
  3320.  destination, for example: 
  3321.  
  3322.           [c:\] copy schedule.txt prn
  3323.  
  3324.  To copy text to or from the clipboard use CLIP: as the device name.  Using 
  3325.  CLIP: with non-text data will produce unpredictable results.  See Redirection 
  3326.  for additional information on CLIP:. 
  3327.  
  3328.  Appending Files 
  3329.  
  3330.  A plus [+] tells COPY to append two or more files to a single destination 
  3331.  file.  If you list several source files separated with [+] and don't specify a 
  3332.  destination, COPY will use the name of the first source file as the 
  3333.  destination, and append each subsequent file to the first file. 
  3334.  
  3335.  For example, the following command will append the contents of C:\MEMO2 and 
  3336.  C:\MEMO3 to C:\MEMO1 and leave the combined contents in the file named 
  3337.  C:\MEMO1 : 
  3338.  
  3339.           [c:\] copy memo1+memo2+memo3
  3340.  
  3341.  To append the same three files but store the result in BIGMEMO: 
  3342.  
  3343.           [c:\] copy memo1+memo2+memo3 bigmemo
  3344.  
  3345.  To append C:\MEM\MEMO2 and C:\MEM\MEMO3 to D:\DATA\MEMO1, and leave the result 
  3346.  in C:\MEM\MEMO1 :  If no destination is specified, the destination file will 
  3347.  always be created in the current directory even if the first source file is in 
  3348.  another directory or on another drive.  For example, this command will append 
  3349.  C:\MEM\MEMO2 and C:\MEM\MEMO3 to D:\DATA\MEMO1, and leave the result in 
  3350.  C:\MEM\MEMO1 : 
  3351.  
  3352.           [c:\mem] copy d:\data\memo1+memo2+memo3
  3353.  
  3354.  You cannot append files to a device (such as a printer); if you try to do so, 
  3355.  COPY will ignore the [+] signs and copy the files individually.  If you 
  3356.  attempt to append several source files to a destination directory or disk, 
  3357.  COPY will append the files and place the copy in the new location with the 
  3358.  same name as the first source file. 
  3359.  
  3360.  Advanced Features 
  3361.  
  3362.  If your destination has wildcards in it, COPY will attempt to match them with 
  3363.  the source names.  For example, this command copies the .DAT files from drive 
  3364.  A to C:\MYDIR and gives the new copies the extension .DX : 
  3365.  
  3366.           [c:\] copy a:*.dat c:\mydir\*.dx
  3367.  
  3368.  This feature can give you unexpected results if you use it with multiple 
  3369.  source file names.  For example, suppose that drive A contains XYZ.DAT and 
  3370.  XYZ.TXT.  The command 
  3371.  
  3372.           [c:\] copy a:\*.dat a:\*.txt c:\mydir\*.dx
  3373.  
  3374.  will copy A:XYZ.DAT to C:\MYDIR\XYZ.DX.  Then it will copy A:XYZ.TXT to 
  3375.  C:\MYDIR\XYZ.DX, overwriting the first file it copied. 
  3376.  
  3377.  COPY also understands include lists, so you can specify several different 
  3378.  kinds of files in the same command.  This command copies the .TXT, .DOC, and 
  3379.  .BAT files from the E:\MYDIR directory to the root directory of drive A: 
  3380.  
  3381.           [c:\] copy e:\mydir\*.txt;*.doc;*.bat a:\
  3382.  
  3383.  You can use date, time, and size ranges to further define the files that you 
  3384.  want to copy.  This example copies every file in the E:\MYDIR directory, which 
  3385.  was created or modified yesterday, and which is also 10,000 bytes or smaller 
  3386.  in size, to the root directory of drive A: 
  3387.  
  3388.           [c:\] copy /[d-1] /[s0,10000] e:\mydir\*.* a:\
  3389.  
  3390.  You can also use file exclusion ranges to restrict the list of files that 
  3391.  would normally be selected with wildcards.  This example copies every file in 
  3392.  the E:\MYDIR directory except backup (.BAK or .BK!) files: 
  3393.  
  3394.           [c:\] copy /[!*.bak;*.bk!] e:\mydir\*.* a:\
  3395.  
  3396.  COPY will normally process source files which do not have the hidden or system 
  3397.  attribute, and will ignore the read-only and archive attributes.  It will 
  3398.  always set the archive attribute and clear the read-only attribute of 
  3399.  destination files.  In addition, if the destination is an existing file with 
  3400.  the read-only attribute, COPY will generate an "Access Denied" error and 
  3401.  refuse to overwrite the file.  You can alter some of these behaviors with 
  3402.  switches: 
  3403.  
  3404.     /A:     Forces COPY to process source files with the attributes you specify 
  3405.             after the ":", or to process all source files regardless of 
  3406.             attributes (if /A: is used by itself). 
  3407.  
  3408.     /H      Forces COPY to process hidden and system source files, as well as 
  3409.             normal files.  The hidden and system attributes from each source 
  3410.             file will be preserved when creating the destination files. 
  3411.  
  3412.     /K      Retains the read-only attribute from each source file when creating 
  3413.             the destinationfile.  See /K below for a special note if you are 
  3414.             running under Novell Netware. 
  3415.  
  3416.     /Z      Forces COPY to overwrite an existing read-only destination file. 
  3417.  
  3418.  Use caution with /A:, /H, or /K when both the source and destination 
  3419.  directories contain file descriptions.  If the source file specification 
  3420.  matches the description file name (normally DESCRIPT.ION), and you use a 
  3421.  switch which tells COPY to process hidden files, the DESCRIPT.ION file itself 
  3422.  will be copied, overwriting any existing file descriptions in the destination 
  3423.  directory.  For example, if the \DATA directory contains file descriptions 
  3424.  this command would overwrite any existing descriptions in the \SAVE directory: 
  3425.  
  3426.           [c:\data] copy /h d*.* \save\
  3427.  
  3428.  (If you remove the hidden attribute from the DESCRIPT.ION file the same 
  3429.  caution applies even if you do not use /A:, /H, or /K, as DESCRIPT.ION is then 
  3430.  treated like any other file.) 
  3431.  
  3432.  If you copy a file from a FAT volume to an HPFS volume, and you do not give an 
  3433.  explicit destination name (i.e. you are moving the file to the current 
  3434.  directory, or your destination name is made up entirely of wildcards), COPY 
  3435.  will look for a .LONGNAME extended attribute for the source file.  If it finds 
  3436.  that attribute, it will use the long filename for the destination file.  If it 
  3437.  does not, it will use the short name. 
  3438.  
  3439.  Similarly, if you COPY files with long filenames from an HPFS volume to a FAT 
  3440.  volume, 4OS2 will create the destination files with short, FAT-compatible 
  3441.  names and save the long filenames in the .LONGNAME extended attribute.  The 
  3442.  short name is created by replacing special characters with underscores, adding 
  3443.  numeric digits to the filename (if necessary) to make the new name unique, and 
  3444.  truncating the name to fit with in the "8.3" FAT name structure. 
  3445.  
  3446.  Options 
  3447.  
  3448.  The /A(SCII) and /B(inary) options apply to the preceding filename and to all 
  3449.  subsequent filenames on the command line until the file name preceding the 
  3450.  next /A or /B, if any.  The other options (/A:, /C, /E, /H, /K, /M, /N, /P, 
  3451.  /Q, /R, /S, /T, /U, /V, /X, /Z) apply to all filenames on the command line, no 
  3452.  matter where you put them.  For example, either of the following commands 
  3453.  could be used to copy a font file to the printer in binary mode: 
  3454.  
  3455.           [c:\] copy /b myfont.dat prn
  3456.           [c:\] copy myfont.dat /b prn
  3457.  
  3458.  Some options do not make sense in certain contexts, in which case COPY will 
  3459.  ignore them.  For example, you cannot prompt before replacing an existing file 
  3460.  when the destination is a device such as the printer -- there's no such thing 
  3461.  as an "existing file" on the printer.  If you use conflicting output options, 
  3462.  like /Q and /P, COPY will generally take a "conservative" approach and give 
  3463.  priority to the option which generates more prompts or more information. 
  3464.  
  3465.     /A:     (ASCII) If you use /A with a source filename, the file will be 
  3466.             copied up to, but not including, the first Ctrl-Z (Control-Z or 
  3467.             ASCII 26) character in the file (some application programs use the 
  3468.             Ctrl-Z to mark the end of a file).  If you use /A with a 
  3469.             destination filename, a Ctrl-Z will be added to the end of the 
  3470.             file.  /A is the default when appending files, or when the 
  3471.             destination is a device like NUL or PRN, rather than a disk file. 
  3472.             Also see /B. 
  3473.  
  3474.     /A::    (Attribute select) Select only those files that have the specified 
  3475.             attribute(s) set.  Preceding the attribute character with a hyphen 
  3476.             [-] will select files that do not have that attribute set.  The 
  3477.             colon [:] after /A is required.  The attributes are: 
  3478.  
  3479.                            R  Read-only 
  3480.                            H  Hidden 
  3481.                            S  System 
  3482.                            D  Subdirectory 
  3483.                            A  Archive 
  3484.  
  3485.             If no attributes are listed at all (e.g., COPY /A: ...), COPY will 
  3486.             select all files and subdirectories including hidden and system 
  3487.             files.  If attributes are combined, all the specified attributes 
  3488.             must match for a file to be selected. For example, /A:RHS will 
  3489.             select only those files with all three attributes set. 
  3490.  
  3491.             See the cautionary note under Advanced Features above before using 
  3492.             /A: when both source and destination directories contain file 
  3493.             descriptions. 
  3494.  
  3495.             You must include the colon with this option to distinguish it from 
  3496.             the /A(SCII) switch, above. 
  3497.  
  3498.     /B:     (Binary) If you use /B with a source filename, the entire file is 
  3499.             copied; Ctrl-Z characters in the file do not affect the copy 
  3500.             operation.  Using /B with a destination filename prevents addition 
  3501.             of a Ctrl-Z to the end of the destination file.  /B is the default 
  3502.             for normal file copies.  Also see /A. 
  3503.  
  3504.     /C:     (Changed files) Copy files only if the destination file exists and 
  3505.             is older than the source (see also /U).  This option is useful for 
  3506.             updating the files in one directory from those in another without 
  3507.             copying any newly created files. 
  3508.  
  3509.     /E:     (no Error messages) Suppress all non-fatal error messages, such as 
  3510.             "File not found."  Fatal error messages, such as "Drive not ready," 
  3511.             will still be displayed.  This option is most useful in batch files 
  3512.             and aliases. 
  3513.  
  3514.     /F:     (Fail on EA error) Fail if the source file has extended attributes 
  3515.             and the destination file system doesn't support extended 
  3516.             attributes. 
  3517.  
  3518.     /H:     (Hidden) Copy all matching files including those with the hidden 
  3519.             and/or system attribute set. 
  3520.  
  3521.             See the cautionary note under Advanced Features above before using 
  3522.             /H when both source and destination directories contain file 
  3523.             descriptions. 
  3524.  
  3525.     /K:     (Keep attributes) To maintain compatibility with CMD.EXE, COPY 
  3526.             normally maintains the hidden and system attributes, sets the 
  3527.             archive attribute, and removes the read-only attribute on the 
  3528.             destination file.  /K tells COPY to also maintain the read-only 
  3529.             attribute on the destination file.  However, if the destination is 
  3530.             on a Novell Netware volume, this option will fail to maintain the 
  3531.             read-only attribute.  This is due to the way Netware handles file 
  3532.             attributes, and is not a problem in COPY. 
  3533.  
  3534.     /M:     (Modified) Copy only those files with the archive attribute set, 
  3535.             i.e., those which have been modified since the last backup.  The 
  3536.             archive attribute of the source will not be cleared after copying; 
  3537.             to clear it use the /X switch, or use ATTRIB. 
  3538.  
  3539.     /N:     (Nothing) Do everything except actually perform the copy.  This 
  3540.             option is useful for testing what the result of a complex COPY 
  3541.             command will be.  /N does not prevent creation of destination 
  3542.             subdirectories when it is used with /s. 
  3543.  
  3544.     /P:     (Prompt) Ask the user to confirm each source file.  Your options at 
  3545.             the prompt are explained in detail under Page and File Prompts. 
  3546.  
  3547.     /Q:     (Quiet) Don't display filenames or the total number of files 
  3548.             copied.  This option is most often used in batch files.  See also 
  3549.             /T. 
  3550.  
  3551.     /R:     (Replace) Prompt the user before overwriting an existing file. 
  3552.             Your options at the prompt are explained in detail under Page and 
  3553.             File Prompts. 
  3554.  
  3555.     /S:     (Subdirectories) Copy the subdirectory tree starting with the files 
  3556.             in the source directory plus each subdirectory below that.  The 
  3557.             destination must be a directory; if it doesn't exist, COPY will 
  3558.             attempt to create it.  COPY will also attempt to create needed 
  3559.             subdirectories on the tree below the destination, including empty 
  3560.             source directories.  If COPY /S creates one or more destination 
  3561.             directories, they will be added automatically to the extended 
  3562.             directory search database. 
  3563.  
  3564.             If you attempt to use COPY /S to copy a subdirectory tree into part 
  3565.             of itself, COPY will detect the resulting infinite loop, display an 
  3566.             error message, and exit. 
  3567.  
  3568.     /T:     (Totals) Turns off  the display of filenames, like /Q, but does 
  3569.             display the total number of files copied. 
  3570.  
  3571.     /U:     (Update) Copy each source file only if it is newer than a matching 
  3572.             destination file or if a matching destination file does not exist 
  3573.             (see also /C).  This option is useful for keeping one directory 
  3574.             matched with another with a minimum of copying. 
  3575.  
  3576.     /V:     (Verify) Verify each disk write.  This is the same as executing the 
  3577.             VERIFY ON command, but is only active during the COPY.  /V does not 
  3578.             read back the file and compare its contents with what was written; 
  3579.             it only verifies that the data written to disk is physically 
  3580.             readable. 
  3581.  
  3582.     /X:     Clears the archive attribute from the source file after a 
  3583.             successful copy.  This option is most useful if you are using COPY 
  3584.             to maintain a set of backup files. 
  3585.  
  3586.     /Z:     Overwrites read-only destination files.  Without this option, COPY 
  3587.             will fail with an "Access denied" error if the destination file has 
  3588.             its read-only attribute set.  This option allows COPY to overwrite 
  3589.             read-only files without generating any errors. 
  3590.  
  3591.  
  3592. ΓòÉΓòÉΓòÉ 6.14. DATE - Change the system date ΓòÉΓòÉΓòÉ
  3593.  
  3594.  Purpose:    Display and optionally change the system date. 
  3595.  
  3596.  Format:     DATE [mm -dd -yy ] 
  3597.  
  3598.              mm :  The month (1 - 12). 
  3599.              dd :  The day (1 - 31). 
  3600.              yy :  The year (00 - 99, or a 4- digit year). 
  3601.  
  3602.  See also:  TIME. 
  3603.  
  3604.  Usage 
  3605.  
  3606.  If you simply type DATE without any parameters, you will see the current 
  3607.  system date and time, and be prompted for a new date.  Press ENTER if you 
  3608.  don't wish to change the date.  If you type a new date, it will become the 
  3609.  current system date, which is included in the directory entry for each file as 
  3610.  it is created or altered: 
  3611.  
  3612.           [c:\] date
  3613.           Mon  Dec 22, 1997  9:30:06
  3614.           Enter new date (mm-dd-yy):
  3615.  
  3616.  You can also enter a new system date by typing the DATE command plus the new 
  3617.  date on the command line: 
  3618.  
  3619.           [c:\] date 10-16-97
  3620.  
  3621.  You can use hyphens, slashes, or periods to separate the month, day, and year 
  3622.  entries.  The year can be entered as a 4-digit or 2-digit value.  Two-digit 
  3623.  years between 80 and 99 are interpreted as 1980 - 1999; values between 00 and 
  3624.  79 are interpreted as 2000 - 2079. 
  3625.  
  3626.  DATE adjusts the format it expects depending on your country settings.  When 
  3627.  entering the date, use the correct format for the country setting currently in 
  3628.  effect on your system. 
  3629.  
  3630.  
  3631. ΓòÉΓòÉΓòÉ 6.15. DEL - Delete one or more files ΓòÉΓòÉΓòÉ
  3632.  
  3633.  Purpose:    Erase one file, a group of files, or entire subdirectories. 
  3634.  
  3635.  Format:     DEL [/A:[[-]rhsda] /E /F /N /P /Q /S /T /W /X /Y /Z] file ... 
  3636.                 or 
  3637.              ERASE [/A:[[-]rhsda] /E /F /N /P /Q /S /T /W /X /Y /Z] file ... 
  3638.  
  3639.              file :  The file, subdirectory, or list of files or subdirectories 
  3640.              to erase. 
  3641.  
  3642.              /A: (ttribute select)           /S(ubdirectories) 
  3643.              /E (no Error messages)          /T(otal) 
  3644.              /F(orce delete)                 /W(ipe) 
  3645.              /N(othing)                      /X (remove empty subdirectories) 
  3646.              /P(rompt)                       /Y(es to all prompts) 
  3647.              /Q(uiet)                        /Z(ap hidden and read-only files) 
  3648.  
  3649.  File Selection 
  3650.  
  3651.  Supports extended wildcards, ranges, multiple file names, and include lists. 
  3652.  
  3653.  Usage 
  3654.  
  3655.  DEL and ERASE are synonyms, you can use either one. 
  3656.  
  3657.  Use the DEL and ERASE commands with caution; the files and subdirectories that 
  3658.  you erase may be impossible to recover without specialized utilities and a lot 
  3659.  of work. 
  3660.  
  3661.  To erase a single file, simply enter the file name: 
  3662.  
  3663.           [c:\] del letters.txt
  3664.  
  3665.  You can also erase multiple files in a single command.  For example, to erase 
  3666.  all the files in the current directory with a .BAK or .PRN extension: 
  3667.  
  3668.           [c:\] del *.bak *.prn
  3669.  
  3670.  When you use DEL on an HPFS drive, you must quote any file names which contain 
  3671.  whitespace or special characters.  See File Names for additional details. 
  3672.  
  3673.  To exclude files from a DEL command, use a file exclusion range.  For example, 
  3674.  to delete all files in the current directory except those whose extension is 
  3675.  .TXT, use a command like this: 
  3676.  
  3677.           [c:\] del /[!*.TXT] *.*
  3678.  
  3679.  When using exclusion ranges or other more complex options you may want to use 
  3680.  the /N switch first, to preview the effects of the DEL without actually 
  3681.  deleting any files. 
  3682.  
  3683.  If you enter a subdirectory name, or a filename composed only of wildcards (* 
  3684.  and/or ?), DEL asks for confirmation (Y or N) unless you specified the /Y 
  3685.  option.  If you respond with a Y, DEL will delete all the files in that 
  3686.  subdirectory (hidden, system, and read-only files are only deleted if you use 
  3687.  the /Z option). 
  3688.  
  3689.  DEL displays the amount of disk space recovered, unless the /Q option is used 
  3690.  (see below).  It does so by comparing the amount of free disk space before and 
  3691.  after the DEL command is executed.  This amount may be incorrect if you are 
  3692.  using a deletion tracking system which stores deleted files in a hidden 
  3693.  directory, or if, under a multitasking system, another program performs a file 
  3694.  operation while the DEL command is executing. 
  3695.  
  3696.  Remember that DEL removes file descriptions along with files.  Most deletion 
  3697.  tracking systems will not be able to save or recover a file's description, 
  3698.  even if they can save or recover the data in a file. 
  3699.  
  3700.  When a file is deleted, its disk space is returned to the operating system for 
  3701.  use by other files.  However, the contents of the file remain on the disk 
  3702.  until they are overwritten by another file.  If you wish to obliterate a file 
  3703.  or wipe its contents clean, use DEL /W, which overwrites the file with zeros 
  3704.  before deleting it.  Use this option with caution -- once a file is 
  3705.  obliterated, it is impossible to recover. 
  3706.  
  3707.  DEL returns a non-zero exit code if no files are deleted, or if another error 
  3708.  occurs.  You can test this exit code with the %_? environment variable, and 
  3709.  use it with the conditional commands && and ||). 
  3710.  
  3711.  Options 
  3712.  
  3713.     /A::    (Attribute select) Select only those files that have the specified 
  3714.             attribute(s) set.  Preceding the attribute character with a hyphen 
  3715.             [-] will select files that do not have that attribute set.  The 
  3716.             colon [:] after /A is required.  The attributes are: 
  3717.  
  3718.                            R  Read-only 
  3719.                            H  Hidden 
  3720.                            S  System 
  3721.                            D  Subdirectory 
  3722.                            A  Archive 
  3723.  
  3724.             If no attributes are listed at all (e.g., DEL /A: ...), DEL will 
  3725.             select all files and subdirectories including hidden and system 
  3726.             files.  If attributes are combined, all the specified attributes 
  3727.             must match for a file to be selected. For example, /A:RHS will 
  3728.             select only those files with all three attributes set. 
  3729.  
  3730.     /E:     (No error messages) Suppress all non-fatal error messages, such as 
  3731.             "File Not Found."  Fatal error messages, such as "Drive not ready," 
  3732.             will still be displayed.  This option is most useful in batch files 
  3733.             and aliases. 
  3734.  
  3735.     /F:     (Force delete) This option forces deletion of the file without 
  3736.             saving it to the DELDIR directory (if DELDIR is not in use, /F has 
  3737.             no effect). 
  3738.  
  3739.     /N:     (Nothing) Do everything except actually delete the file(s).  This 
  3740.             is useful for testing what the result of a DEL would be. 
  3741.  
  3742.     /P:     (Prompt) Prompt the user to confirm each erasure.  Your options at 
  3743.             the prompt are explained in detail under Page and File Prompts. 
  3744.  
  3745.     /Q:     (Quiet) Don't display filenames as they are deleted, or the number 
  3746.             of files deleted or bytes freed.  See also /T. 
  3747.  
  3748.     /S:     (Subdirectories) Delete the specified files in this directory and 
  3749.             all of its subdirectories.  This can be used to delete all the 
  3750.             files in a subdirectory tree or even a whole disk.  It should be 
  3751.             used with caution! 
  3752.  
  3753.     /T:     (Total) Don't display filenames as they are deleted, but display 
  3754.             the total number of files deleted plus the amount of free disk 
  3755.             space recovered.  Unlike /Q, the /T option will not speed up 
  3756.             deletions under DOS. 
  3757.  
  3758.     /W:     (Wipe) Clear the file to zeros before deleting it.  Use this option 
  3759.             to completely obliterate a file's contents from your disk.  Once 
  3760.             you have used this option it is impossible to recover the file even 
  3761.             if you are using an undelete utility, because the contents of the 
  3762.             file are destroyed before it is deleted.  /W overwrites the file 
  3763.             only once; it does not adhere to security standards which require 
  3764.             multiple overwrites with varying data when destroying sensitive 
  3765.             information. 
  3766.  
  3767.     /X:     (Remove empty subdirectories) Remove empty subdirectories after 
  3768.             deleting (only useful when used with /S).  If DEL deletes one or 
  3769.             more directories, they will be removed automatically from the 
  3770.             extended directory search database. 
  3771.  
  3772.     /Y:     (Yes) The reverse of /P -- it assumes a Y response to everything, 
  3773.             including deleting an entire subdirectory tree.  4OS2 normally 
  3774.             prompts before deleting files when the name consists only of 
  3775.             wildcards or a subdirectory name (see above); /Y overrides this 
  3776.             protection, and should be used with extreme caution! 
  3777.  
  3778.     /Z:     (Zap) Delete read-only, hidden, and system files as well as normal 
  3779.             files.  Files with the read-only, hidden, or system attribute set 
  3780.             are normally protected from deletion; /Z overrides this protection, 
  3781.             and should be used with caution.  Because EXCEPT works by hiding 
  3782.             files, /Z will override an EXCEPT command.  However, files 
  3783.             specified in a file exclusion range will not be deleted by DEL /Z. 
  3784.  
  3785.             For example, to delete the entire subdirectory tree starting with 
  3786.             C:\UTIL, including hidden and read-only files, without prompting 
  3787.             (use this command with CAUTION!): 
  3788.  
  3789.                                 [c:\] del /sxyz c:\util\
  3790.  
  3791.  
  3792. ΓòÉΓòÉΓòÉ 6.16. DELAY - Pause for a specified length of time ΓòÉΓòÉΓòÉ
  3793.  
  3794.  Purpose:    Pause for a specified length of time. 
  3795.  
  3796.  Format:     DELAY [seconds ] 
  3797.  
  3798.              seconds :  The number of seconds to delay. 
  3799.  
  3800.  Usage 
  3801.  
  3802.  DELAY is useful in batch file loops while waiting for something to occur.  To 
  3803.  wait for 10 seconds: 
  3804.  
  3805.           delay 10
  3806.  
  3807.  DELAY is most useful when you need to wait a specific amount of time for an 
  3808.  external event, or check a system condition periodically.  For example, this 
  3809.  batch file checks the battery status (as reported by your Advanced Power 
  3810.  Management drivers) every 15 seconds, and gives a warning when battery life 
  3811.  falls below 30%: 
  3812.  
  3813.           do forever
  3814.              iff %_apmlife lt 30 then
  3815.                 beep 440 4 880 4 440 4 880 4
  3816.                 echo Low Battery!!
  3817.              endiff
  3818.              delay 15
  3819.           enddo
  3820.  
  3821.  The seconds value can be as large as 4 million seconds (49 days). 
  3822.  
  3823.  For delays shorter than one second, use the BEEP command with an inaudible 
  3824.  frequency (below 20 Hz). 
  3825.  
  3826.  4OS2 uses the minimum possible processor time during a DELAY, in order to 
  3827.  allow other applications full use of system resources. 
  3828.  
  3829.  You can cancel a delay by pressing Ctrl-C or Ctrl-Break. 
  3830.  
  3831.  
  3832. ΓòÉΓòÉΓòÉ 6.17. DESCRIBE - Create or modify file descriptions ΓòÉΓòÉΓòÉ
  3833.  
  3834.  Purpose:    Create, modify, or delete file and subdirectory descriptions. 
  3835.  
  3836.  Format:     DESCRIBE [/A:[[-]rhsda]] file [[/D]"description "] ... 
  3837.  
  3838.              file :  The file, directory, or list of files and directories to 
  3839.              operate on. 
  3840.              description :  The description to attach to the file. 
  3841.  
  3842.              /A: (Attribute select)          /D(escription follows) 
  3843.  
  3844.  File Selection 
  3845.  
  3846.  Supports extended wildcards, ranges, multiple file names, and include lists. 
  3847.  
  3848.  Usage 
  3849.  
  3850.  DESCRIBE adds descriptions to files and subdirectories.  The descriptions can 
  3851.  be displayed by DIR in single-column mode and by SELECT.  Descriptions let you 
  3852.  identify your files in much more meaningful ways than you can in an 
  3853.  eight-character filename. 
  3854.  
  3855.  You enter a description on the command line by typing the DESCRIBE command, 
  3856.  the filename, and the description in quotation marks, like this: 
  3857.  
  3858.           [c:\] describe memo.txt "Memo to Bob about party"
  3859.  
  3860.  If you don't put a description on the command line, DESCRIBE will prompt you 
  3861.  for it: 
  3862.  
  3863.           [c:\] describe memo.txt
  3864.           Describe "memo.txt" : Memo to Bob about party
  3865.  
  3866.  If you use wildcards or multiple filenames with the DESCRIBE command and don't 
  3867.  include the description text, you will be prompted to enter a description for 
  3868.  each file.  If you do include the description on the command line, all 
  3869.  matching files will be given the same description. 
  3870.  
  3871.  If you use DESCRIBE on an HPFS drive, you must quote the file name if it 
  3872.  contains whitespace or special characters.  See File Names for additional 
  3873.  details. 
  3874.  
  3875.  If you enter a quoted description on the command line, and the text matches 
  3876.  the name of a file in the current directory, the command processor will treat 
  3877.  the string as a quoted file name, not as description text as you intended.  To 
  3878.  resolve this problem use the /D switch immediately prior to the quoted 
  3879.  description (with no intervening spaces).  For example, if the current 
  3880.  directory contains the files DATA.TST and "Test File", the first of these 
  3881.  commands will work as intended, but the second will not (in the second example 
  3882.  the string "test file" will be treated as a second file name, when it is 
  3883.  intended to be description text): 
  3884.  
  3885.           [c:\] describe data.tst /D"test file"
  3886.           [c:\] describe data.tst "test file"
  3887.  
  3888.  On HPFS drives you will not see file descriptions in a normal DIR display, 
  3889.  because DIR must leave space for the long filenames.  To view the 
  3890.  descriptions, use DIR /Z to display the directory in FAT format. 
  3891.  
  3892.  Each description can be up to 511 characters long.  You can change this limit 
  3893.  with the DescriptionMax directive in 4OS2.INI.  In order to fit your 
  3894.  descriptions on a single line in a standard DIR display, keep them to 4o 
  3895.  characters or less (longer descriptions are wrapped in the DIR output). 
  3896.  DESCRIBE can edit descriptions longer than DescriptionMax (up to a limit of 
  3897.  511 characters), but will not allow you to lengthen the existing text. 
  3898.  
  3899.  The descriptions are stored in each directory in a hidden file called 
  3900.  DESCRIPT.ION.  Use the ATTRIB command to remove the hidden attribute from this 
  3901.  file if you need to copy or delete it.  DESCRIPT.ION is always created as a 
  3902.  hidden file, but will not be re-hidden by 4OS2 if you remove the hidden 
  3903.  attribute. 
  3904.  
  3905.  You can change the description file name with the SETDOS /D command, or the 
  3906.  DescriptionName directive in 4OS2.INI, and retrieve it with the _DName 
  3907.  internal variable.  Use caution when changing the description file name, as 
  3908.  changing the name from the default will make it difficult to transfer file 
  3909.  descriptions to another system. 
  3910.  
  3911.  The description file is modified appropriately whenever you perform an 
  3912.  internal command which affects it (such as COPY, MOVE, DEL, or RENAME), but 
  3913.  not if you use an external program (such as XCOPY or a visual shell).  You can 
  3914.  disable description processing on the Options 1 page of the OPTION dialogs, 
  3915.  with the Descriptions directive in the .INI file, or with SETDOS /D. 
  3916.  
  3917.  When you COPY or MOVE files between two directories, both of which have 
  3918.  descriptions, and you use switches which enable processing of hidden files (or 
  3919.  you have removed the hidden attribute from DESCRIPT.ION), you must use caution 
  3920.  to avoid overwriting existing file descriptions in the destination directory 
  3921.  with the DESCRIPT.ION file from the source directory.  See the notes under the 
  3922.  Advanced Features sections of COPY and MOVE for additional details. 
  3923.  
  3924.  Options 
  3925.  
  3926.     /A::    (Attribute select) Select only those files that have the specified 
  3927.             attribute(s) set.  Preceding the attribute character with a hyphen 
  3928.             [-] will select files that do not have that attribute set.  The 
  3929.             colon [:] after /A is required.  The attributes are: 
  3930.  
  3931.                            R  Read-only 
  3932.                            H  Hidden 
  3933.                            S  System 
  3934.                            D  Subdirectory 
  3935.                            A  Archive 
  3936.  
  3937.             If no attributes are listed at all (e.g., DESCRIBE /A: ...), 
  3938.             DESCRIBE will select all files and subdirectories including hidden 
  3939.             and system files.  If attributes are combined, all the specified 
  3940.             attributes must match for a file to be selected. For example, 
  3941.             /A:RHS will select only those files with all three attributes set. 
  3942.  
  3943.     /D:     (Description follows) The quoted string immediately following this 
  3944.             switch is a description, not a file name. Use /D to avoid any 
  3945.             ambiguity in the meaning of quoted strings.  See the Usage section 
  3946.             above for details. 
  3947.  
  3948.  
  3949. ΓòÉΓòÉΓòÉ 6.18. DETACH - Start a program in detached mode ΓòÉΓòÉΓòÉ
  3950.  
  3951.  Purpose:    Start an OS/2 program in detached mode. 
  3952.  
  3953.  Format:     DETACH command 
  3954.  
  3955.              command :  The name of a command to execute, including an optional 
  3956.              drive and path specification. 
  3957.  
  3958.  See also:  START. 
  3959.  
  3960.  Usage 
  3961.  
  3962.  When you start a program with DETACH, that program cannot use the keyboard, 
  3963.  mouse, or video display.  It is "detached" from the normal means of user input 
  3964.  and output.  However, you can redirect the program's standard I/O to other 
  3965.  devices if necessary, using redirection symbols. 
  3966.  
  3967.  The command can be an internal command, external command, alias, or batch 
  3968.  file.  If it is not an external command, 4OS2 will detach a copy of itself to 
  3969.  execute the command. 
  3970.  
  3971.  For example, the following command will detach a copy of 4OS2 to run the batch 
  3972.  file XYZ.BTM : 
  3973.  
  3974.           [c:\] detach xyz.btm
  3975.  
  3976.  Once the program has started, 4OS2 returns to the prompt immediately.  It does 
  3977.  not wait for a detached program to finish. 
  3978.  
  3979.  There is no standard way to stop a detached program.  If the program does not 
  3980.  terminate on its own you must reboot the system or use an appropriate task 
  3981.  manager or external utility to stop it. 
  3982.  
  3983.  
  3984. ΓòÉΓòÉΓòÉ 6.19. DIR - Display directories ΓòÉΓòÉΓòÉ
  3985.  
  3986.  Purpose:    Display information about files and subdirectories. 
  3987.  
  3988.  Format:     DIR [/1 /2 /4 /A[[:][-]rhsda] /B /D /E /F /G /H /I"text" /J /K /L 
  3989.              /M /N /O[[:][-]adeginrsu] /P /R /S /T[:acw] /U /V /W /Z] [file 
  3990.              ...] 
  3991.  
  3992.              file :  The file, directory, or list of files or directories to 
  3993.              display. 
  3994.  
  3995.              /1 (one column)                 /L(ower case) 
  3996.              /2 (two columns)                /M (suppress footer) 
  3997.              /4 (four columns)               /N(ew format) 
  3998.              /A(ttribute select)             /O(rder) 
  3999.              /B(are)                         /P(ause) 
  4000.              /D(isable color coding)         /R (disable wRap) 
  4001.              /E (use upper case)             /S(ubdirectories) 
  4002.              /F(ull path)                    /T (aTtribute) or (Time) 
  4003.              /G (allocated size)             /U (sUmmary information) 
  4004.              /H(ide dots)                    /V(ertical sort) 
  4005.              /I (match descriptions)         /W(ide) 
  4006.              /J(ustify names)                /Z (use FAT format) 
  4007.              /K (suppress header) 
  4008.  
  4009.  See also:  ATTRIB, DESCRIBE, SELECT, and SETDOS. 
  4010.  
  4011.  File Selection 
  4012.  
  4013.  Supports extended wildcards, ranges, multiple file names, and include lists. 
  4014.  
  4015.  Usage 
  4016.  
  4017.  DIR can be used to display information about files from one or more of your 
  4018.  disk directories, in a wide range of formats.  Depending on the options 
  4019.  chosen, you can display the file name, attributes, and size; the time and date 
  4020.  of the last change to the file; the file description; and the file's 
  4021.  compression ratio.  You can also display information in 1, 2, 4, 5, or more 
  4022.  columns, sort the files several different ways, use color to distinguish file 
  4023.  types, and pause after each full screen. 
  4024.  
  4025.  The various DIR displays are controlled through options or switches.  The best 
  4026.  way to learn how to use the many options available with the DIR command is to 
  4027.  experiment.  You will soon know which options you want to use regularly.  You 
  4028.  can select those options permanently by using the ALIAS command. 
  4029.  
  4030.  For example, to display all the files in the current directory, in 2 columns, 
  4031.  sorted vertically (down one column then down the next), and with a pause at 
  4032.  the end of each page: 
  4033.  
  4034.           [c:\] dir /2/p/v
  4035.  
  4036.  To set up this format as the default, using an alias: 
  4037.  
  4038.           [c:\] alias dir=*dir /2/p/v
  4039.  
  4040.  When you use DIR on an HPFS drive, you must quote any file names which contain 
  4041.  whitespace or special characters.  See File Names for additional details. 
  4042.  
  4043.  The following sections group DIR's features together in several categories. 
  4044.  Many of the sections move from a general discussion to more technical 
  4045.  material.  If you find some of the information in a category too detailed for 
  4046.  your needs, feel free to skip to the beginning of the next section.  The 
  4047.  sections are: 
  4048.  
  4049.             Selecting Files 
  4050.             Default DIR Output Format 
  4051.             Switching Formats 
  4052.             Multiple Column Displays 
  4053.             Color-Coded Directories 
  4054.             Redirected Output 
  4055.             Other Notes 
  4056.             Options 
  4057.  
  4058.  Selecting Files 
  4059.  
  4060.  DIR can display information about a single file or about several, dozens, 
  4061.  hundreds, or thousands of files at once.  To display information about a 
  4062.  single file, just add the name of the file to the DIR command line: 
  4063.  
  4064.           [c:\] dir january.wks
  4065.  
  4066.  The simplest way to view information about several files at once is to use 
  4067.  wildcards.  DIR can work with traditional wildcard characters (* and ?) and 
  4068.  the extended wildcards.  For example to display all of the .WKS files in the 
  4069.  current directory: 
  4070.  
  4071.           [c:\] dir *.wks
  4072.  
  4073.  To display all .TXT files whose names begin with A, B, or C: 
  4074.  
  4075.           [c:\] dir [abc]*.txt
  4076.  
  4077.  If you don't specify a filename, DIR defaults to *.* on traditional FAT 
  4078.  drives, and * on HPFS drives.  This default displays all non-hidden files and 
  4079.  subdirectories in the current directory. 
  4080.  
  4081.  If you link two or more filenames together with spaces, DIR will display all 
  4082.  of the files that match the first name and then all of the files that match 
  4083.  the second name.  You may use a different drive and path for each filename. 
  4084.  This example lists all of the .WKS and then all of the .WK1 files in the 
  4085.  current directory: 
  4086.  
  4087.           [c:\] dir *.wks *.wk1
  4088.  
  4089.  If you use an include list to link multiple filenames, DIR will display the 
  4090.  matching filenames in a single listing.  Only the first filename in an include 
  4091.  list can have a path; the other files must be in the same path.  This example 
  4092.  displays the same files as the previous example, but the .WKS and .WK1 files 
  4093.  are intermixed: 
  4094.  
  4095.           [c:\] dir *.wks;*.wk1
  4096.  
  4097.  You can include files in the current or named directory plus all of its 
  4098.  subdirectories by using the /S option.  This example displays all of the .WKS 
  4099.  and .WK1 files in the D:\DATA directory and each of its subdirectories: 
  4100.  
  4101.           [c:\] dir /s d:\data\*.wks;*.wk1
  4102.  
  4103.  You can also select files by their attributes by using the /A option.  For 
  4104.  example, this command displays the names of all of the subdirectories of the 
  4105.  current directory: 
  4106.  
  4107.           [c:\] dir /a:d
  4108.  
  4109.  Finally, with the /I option, DIR can select files to display based on their 
  4110.  descriptions (see the DESCRIBE command for more information on file 
  4111.  descriptions).  DIR will display a file if its description matches the text 
  4112.  after the /I switch.  The search is not case sensitive.  You can use wildcards 
  4113.  and extended wildcards as part of the text.  For example, to display any file 
  4114.  described as a "Test File" you can use this command: 
  4115.  
  4116.           [c:\] dir /i"test file"
  4117.  
  4118.  If you want to display files that include the words "test file" anywhere in 
  4119.  their descriptions, use extended wildcards like this: 
  4120.  
  4121.           [c:\] dir /i"*test file*"
  4122.  
  4123.  To display only those files which do not have descriptions, use: 
  4124.  
  4125.           [c:\] dir /I"[]"
  4126.  
  4127.  In addition, you can use ranges to select or exclude specific sets of files. 
  4128.  For example, to display all files modified in the last week, all files except 
  4129.  those with a .BAK extension, and all files over 500 KB in size: 
  4130.  
  4131.           [c:\] dir /[d-7]
  4132.           [c:\] dir /[!*.bak]
  4133.           [c:\] dir /[s500K]
  4134.  
  4135.  You can, of course, mix any of these file selection techniques in whatever 
  4136.  ways suit your needs. 
  4137.  
  4138.  Default DIR Output Format 
  4139.  
  4140.  DIR's output varies based on the type of volume or drive on which the files 
  4141.  are stored.  On an HPFS volume, the default DIR format contains 4 columns: the 
  4142.  date of the last file modification or write, the time of last write, the file 
  4143.  size in bytes, and the file name.  The name is displayed as it is stored on 
  4144.  the disk, in upper, lower, or mixed case.  DIR will wrap filenames from one 
  4145.  line to the next if they are too long to fit the width of the display.  The 
  4146.  standard output format is: 
  4147.  
  4148.            Volume in drive C is C - BOOTUP    Serial ...
  4149.            Directory of  C:\4OS2301\*.*
  4150.  
  4151.           10-24-96  12:17         <DIR>    .
  4152.           10-24-96  12:17         <DIR>    ..
  4153.           10-28-96   7:57             967  4os2 3.txt
  4154.           10-21-96  18:08         212,854  4OS2.EXE
  4155.           11-02-96  10:08              45  4OS2.INI
  4156.  
  4157.  (See Switching Formats below for information on changing the standard long 
  4158.  filename format to allow room for file descriptions.) 
  4159.  
  4160.  On FAT volumes which do not support long file names, the default DIR format 
  4161.  contains 5 columns: the file name, the file size in bytes, the date of the 
  4162.  last write, the time of the last write, and the file's description.  File 
  4163.  names are listed in lower-case; directory names in upper case: 
  4164.  
  4165.            Volume in drive C is C - BOOTUP    Serial ...
  4166.            Directory of  C:\4OS230\*.*
  4167.  
  4168.           .            <DIR>     10-24-96  12:17
  4169.           ..           <DIR>     10-24-96  12:17
  4170.           TEST         <DIR>     11-01-96  16:21
  4171.           4os23.txt         967  10-28-96   7:57
  4172.           4os2.exe       212854  10-21-96  18:08 4OS2 exe ...
  4173.           4os2.ini           45  11-02-96  10:08 4OS2 conf ...
  4174.  
  4175.  DIR's output is normally sorted by name, with directories listed first.  You 
  4176.  can change the sort order with the /O option.  For example, these two commands 
  4177.  sort the output by date -- the first command lists the oldest file first; the 
  4178.  second command lists the oldest file last: 
  4179.  
  4180.           [c:\] dir /o:d
  4181.           [c:\] dir /o:-d
  4182.  
  4183.  When displaying file descriptions, DIR wraps long lines to fit on the screen. 
  4184.  DIR displays a maximum of 40 characters of text in each line of a description, 
  4185.  unless your screen width allows a wider display.  If you disable description 
  4186.  wrapping with the /R option, the description is truncated at the right edge of 
  4187.  the screen, and a right arrow [] is added at the end of the line to alert you 
  4188.  to the existence of additional description text. 
  4189.  
  4190.  Regardless of the volume type, DIR's default output is sorted.  It displays 
  4191.  directory names first, with "<DIR>" inserted instead of a file size, and then 
  4192.  filenames.  DIR assumes that sequences of digits should be sorted numerically 
  4193.  (for example, the file DRAW2 is listed before DRAW03 because 2 is numerically 
  4194.  smaller than 03), rather than strictly alphabetically (where DRAW2 would come 
  4195.  second because "2" is after "0" in alphanumeric order).  You can change the 
  4196.  sort order with the /O option.  When DIR displays file names in a multi-column 
  4197.  format, it sorts file names horizontally unless you use the /V option to 
  4198.  display vertically sorted output. 
  4199.  
  4200.  DIR's display can be modified in many ways to meet different needs.  Most of 
  4201.  the following sections describes the various ways you can change DIR's output 
  4202.  format. 
  4203.  
  4204.  Switching Formats 
  4205.  
  4206.  On HPFS volumes, you can force DIR to use a FAT-like format (file name first, 
  4207.  followed by file information) with the /Z option.  If necessary, DIR /Z 
  4208.  truncates long file names on HPFS drives, and adds a right arrow [] to show 
  4209.  that the name contains additional characters. 
  4210.  
  4211.  The standard HPFS output format does not provide enough space to show 
  4212.  descriptions along with file names.  Therefore, if you wish to view file 
  4213.  descriptions as part of the DIR listing on an HPFS volume, you must use the /Z 
  4214.  option. 
  4215.  
  4216.  If you use the /B option, DIR displays just file names and omits the file 
  4217.  size, time stamp, and description for each file, for example: 
  4218.  
  4219.           [c:\] dir i* /b
  4220.  
  4221.           IBMCOM
  4222.           IBMI18N
  4223.           IBMINST
  4224.           IBMVESA
  4225.           IBMLVL.INI
  4226.           .....
  4227.  
  4228.  There are several ways to modify the display produced by /B.  The /F option is 
  4229.  similar to /B, but displays the full path and name of each file, instead of 
  4230.  just its name.  To view the same information for a directory and its 
  4231.  subdirectories use /B /S or /F /S. 
  4232.  
  4233.  Multiple Column Displays 
  4234.  
  4235.  DIR has three options, /2, /4, and /W, that create multi-column displays.  On 
  4236.  HPFS drives, all 3 of these options force the use of truncated names. 
  4237.  
  4238.  The /2 option creates a 2-column display.  On HPFS drives, only the name of 
  4239.  each file is displayed, with directory names placed in square brackets to 
  4240.  distinguish them from file names.  On FAT drives, support long filenames, or 
  4241.  when /Z or /X is used (see below), the display includes the name, file size, 
  4242.  and time stamp for each file. 
  4243.  
  4244.  The /4 option is similar to /2, but displays directory information in 4 
  4245.  columns.     On drives which do not support long filenames, or when /Z or /X is 
  4246.  used (see below), the display shows the file name and the file size in 
  4247.  kilobytes (KB) or megabytes (MB), with "<D>" in the size column for 
  4248.  directories. 
  4249.  
  4250.  The /W option displays directory information in 5 or more columns, depending 
  4251.  on your screen width.  Each entry in a DIR /W display contains either the name 
  4252.  of a file or the name of a directory.  Directory names are placed in square 
  4253.  brackets to distinguish them from file names. 
  4254.  
  4255.  If you use one of these options on an HPFS drive and do not select an 
  4256.  alternate display format with /Z or /X, the actual number of columns will be 
  4257.  based on the longest name to be displayed and your screen width, and may be 
  4258.  less than the number you requested (for example, you might see only three 
  4259.  columns even though you used /4).  If the longest name is too long to fit in 
  4260.  on a single line the display will be reduced to one column, and each name will 
  4261.  be wrapped, with "extra" blank lines added so that each name takes the same 
  4262.  number of lines. 
  4263.  
  4264.  Color-Coded Directories 
  4265.  
  4266.  The DIR command can display each file name and the associated file information 
  4267.  in a different color, depending on the file's extension. 
  4268.  
  4269.  To choose the display colors, you must either use the SET command to create an 
  4270.  environment variable called COLORDIR, or use the Commands page of the OPTION 
  4271.  dialogs or a text editor to set the ColorDir directive in your .INI file.  If 
  4272.  you do not use the COLORDIR variable or the ColorDir directive, DIR will use 
  4273.  the default screen colors for all files. 
  4274.  
  4275.  If you use both the COLORDIR variable and the ColorDir directive, the 
  4276.  environment variable will override the settings in your .INI file.  You may 
  4277.  find it useful to use the COLORDIR variable for experimenting, then to set 
  4278.  permanent directory colors with the ColorDir directive. 
  4279.  
  4280.  The format for both the COLORDIR environment variable and the ColorDir 
  4281.  directive in the .INI file is: 
  4282.  
  4283.           ext ... :ColorName; ...
  4284.  
  4285.  where "ext" is a file extension (which may include wildcards) or one of the 
  4286.  following file types: 
  4287.  
  4288.           DIRS        Directories
  4289.           RDONLY      Read-only files
  4290.           HIDDEN      Hidden files
  4291.           SYSTEM      System files
  4292.           ARCHIVE     Files modified since the last backup
  4293.  
  4294.  and "ColorName" is any valid color name (see Colors and Color Names). 
  4295.  
  4296.  Unlike most color specifications, the background portion of the color name may 
  4297.  be omitted for directory colors.  If you don't specify a background color, DIR 
  4298.  will use the current screen background color. 
  4299.  
  4300.  For example, to display the .COM and .EXE files in red on the current 
  4301.  background, the .C and .ASM files in bright cyan on the current background, 
  4302.  and the read-only files in blinking green on white (this should be entered on 
  4303.  one line): 
  4304.  
  4305.           [c:\] set colordir=com exe:red; c asm:bright cyan;
  4306.                 rdonly:blink green on white
  4307.  
  4308.  Extended wildcards can be used in directory color specifications.  For 
  4309.  example, to display .BAK, .BAX, and .BAC files in red: 
  4310.  
  4311.           [c:\] set colordir=BA[KXC]:red
  4312.  
  4313.   Redirected Output 
  4314.  
  4315.  The output of the DIR command, like that of most other internal commands, can 
  4316.  be redirected to a file, printer, serial port, or other device.  However, you 
  4317.  may need to take certain DIR command options into account when you redirect 
  4318.  DIR's output. 
  4319.  
  4320.  DIR wraps both long file names and file descriptions at the width of your 
  4321.  display.  Its redirected output will also wrap at the screen width.  Use the 
  4322.  /R option if you wish to disable wrapping of long descriptions. 
  4323.  
  4324.  If you redirect a color-coded directory to a file, DIR will remove the color 
  4325.  data as it sends the directory information to a file.  It will usually do the 
  4326.  same if you redirect output to a character device such as a printer or serial 
  4327.  port.  However, it is not always possible for DIR to tell whether or not a 
  4328.  device is a character device.  If you notice that non-colored lines are being 
  4329.  sent to the output device and colored lines are appearing on your screen, you 
  4330.  can use the /D option to temporarily disable color-coding when you redirect 
  4331.  DIR's output. 
  4332.  
  4333.  To redirect DIR output to the clipboard, use CLIP: as the output device name, 
  4334.  for example: 
  4335.  
  4336.           [c:\] dir *.exe > clip:
  4337.  
  4338.  Other Notes 
  4339.  
  4340.  If you have selected a specific country code for your system, DIR will display 
  4341.  the date in the format for that country.  The default date format is U.S. 
  4342.  (mm-dd-yy).  The separator character in the file time will also be affected by 
  4343.  the country code.  Thousands and decimal separators in numeric displays are 
  4344.  affected by the country code, and by the ThousandsChar and DecimalChar 
  4345.  settings selected on the Options 1 page of the OPTION dialogs or in the .INI 
  4346.  file. 
  4347.  
  4348.  Options 
  4349.  
  4350.  Options on the command line apply only to the filenames which follow the 
  4351.  option, and options at the end of the line apply to the preceding filename 
  4352.  only.  This allows you to specify different options for different groups of 
  4353.  files, yet retains compatibility with the traditional DIR command when a 
  4354.  single filename is specified. 
  4355.  
  4356.     /1:     Single column display -- display the filename, size, date, and 
  4357.             time; also displays the description on drives which do not support 
  4358.             long filenames.  This is the default.  If /T is used the attributes 
  4359.             are displayed instead of the description.  This option is most 
  4360.             useful if you wish to override a default /2, /4, or /W setting 
  4361.             stored in an alias. 
  4362.  
  4363.     /2:     Two column display -- display just the name (on HPFS drives), or 
  4364.             display the filename, size, date, and time on other drives.  See 
  4365.             Multiple Column Displays above for more details. 
  4366.  
  4367.     /4:     Four column display -- display just the name (on HPFS drives); or 
  4368.             display the filename and size, in K (kilobytes) or M (megabytes), 
  4369.             with files between 1 and 9.9 megabytes in size displayed in tenths 
  4370.             (i.e. "2.4M").  See Multiple Column Displays above for more 
  4371.             details. 
  4372.  
  4373.     /A:     (Attribute select) Select only those files that have the specified 
  4374.             attribute(s) set.  Preceding the attribute character with a hyphen 
  4375.             [-] will select files that do not have that attribute set.  The 
  4376.             colon [:] after /A is optional.  The attributes are: 
  4377.  
  4378.               R  Read-only 
  4379.               H  Hidden 
  4380.               S  System 
  4381.               D  Subdirectory 
  4382.               A  Archive 
  4383.  
  4384.             If no attributes are listed at all (e.g., DIR /A ...), DIR will 
  4385.             display all files and subdirectories including hidden and system 
  4386.             files.  If attributes are combined, all the specified attributes 
  4387.             must match for a file to be included in the listing.  For example, 
  4388.             /A:RHS will display only those files with all three attributes set. 
  4389.  
  4390.     /B:     (Bare)  Suppress the header and summary lines, and display file or 
  4391.             subdirectory names only, in a single column.  This option is most 
  4392.             useful when you want to redirect a list of names to a file or 
  4393.             another program.  If you use /B with /S, DIR will show the full 
  4394.             path of each file (the same display as /F) instead of simply its 
  4395.             name and extension. 
  4396.  
  4397.     /D:     (Disable color coding)  Temporarily disable directory color coding. 
  4398.             May be required when color-coded directories are used and DIR 
  4399.             output is redirected to a character device like the printer (e.g., 
  4400.             PRN or LPT1) or serial port (e.g., COM1 or COM2).  /D is not 
  4401.             required when DIR output is redirected to a file. 
  4402.  
  4403.     /E:     Display filenames in the traditional upper case; also see SETDOS /U 
  4404.             and the UpperCase directive in 4OS2.INI. 
  4405.  
  4406.     /F:     (Full path)  Display each filename with its drive letter and path 
  4407.             in a single column, without other information.  If you use /F with 
  4408.             /X on a volume which supports long filenames, the "short" version 
  4409.             of the entire path is displayed. 
  4410.  
  4411.     /G:     Display the allocated disk space instead of the actual size of each 
  4412.             file. 
  4413.  
  4414.     /H:     (Hide dots)  Suppress the display of the "." and ".." directories. 
  4415.  
  4416.     /I:     Display filenames by matching text in their descriptions.  The text 
  4417.             can include wildcards and extended wildcards.  The search text must 
  4418.             be enclosed in quotation marks.  You can select all filenames that 
  4419.             have a description with /I"[?]*", or all filenames that do not have 
  4420.             a description with /I"[]". 
  4421.  
  4422.             The /I option may be used to select files even if descriptions are 
  4423.             not displayed (for example, if /2 is used).  However, /I will be 
  4424.             ignored if /O:c is used. 
  4425.  
  4426.     /J:     (Justify names)  Justify (align) filename extensions and display 
  4427.             them in the traditional format. 
  4428.  
  4429.     /K:     Suppress the header (disk and directory name) display. 
  4430.  
  4431.     /L:     (Lower case)  Display file and directory names in lower case; also 
  4432.             see SETDOS /U and the UpperCase directive in 4OS2.INI. 
  4433.  
  4434.     /M:     Suppress the footer (file and byte count totals) display. 
  4435.  
  4436.     /N:     Use the HPFS display format, even if the files are stored on a 
  4437.             volume which does not support long names.  See also /Z. 
  4438.  
  4439.     /O:     (Order) Set the sorting order.  You may use any combination of the 
  4440.             following sorting options; if multiple options are used, the 
  4441.             listing will be sorted with the first sort option as the primary 
  4442.             key, the next as the secondary key, and so on: 
  4443.  
  4444.               -  Reverse the sort order for the next option. 
  4445.               a  Sort in ASCII order, not numerically, when there are digits in 
  4446.             the name. 
  4447.               d  Sort by date and time (oldest first); for HPFS drives, also 
  4448.             see /T. 
  4449.               e  Sort by extension. 
  4450.               g  Group subdirectories first, then files. 
  4451.               i  Sort by file description (ignored if /O:c is used). 
  4452.               n  Sort by filename (this is the default). 
  4453.               r  Reverse the sort order for all options. 
  4454.               s  Sort by size. 
  4455.               u  Unsorted. 
  4456.  
  4457.  
  4458.     /P:     (Pause)  Wait for a key to be pressed after each screen page before 
  4459.             continuing the display.  Your options at the prompt are explained 
  4460.             in detail under Page and File Prompts. 
  4461.  
  4462.     /R      (disable wRap)  Forces long descriptions to be displayed on a 
  4463.             single line, rather than wrapped onto two or more lines.  Use /R 
  4464.             when output is redirected to a character device, such as a serial 
  4465.             port or the printer; or when you want descriptions truncated, 
  4466.             rather than wrapped, in the on-screen display. 
  4467.  
  4468.     /S:     (Subdirectories)  Display file information from the current 
  4469.             directory and all of its subdirectories.  DIR will only display 
  4470.             headers and summaries for those directories which contain files 
  4471.             that match the filename(s), ranges, and attributes that you specify 
  4472.             on the command line. 
  4473.  
  4474.     /T      (aTtribute display)  Display the filenames, attributes, and 
  4475.             descriptions.  The descriptions will be wrapped onto the next line, 
  4476.             if necessary, unless you also use the /R (truncate) option.  If you 
  4477.             use both /T and /R, descriptions are truncated after 34 characters 
  4478.             on an 80-column display.  The attributes are displayed in the 
  4479.             format RHSA, with the following meanings: 
  4480.  
  4481.               R  Read-only 
  4482.               H  Hidden 
  4483.               D  Directory 
  4484.               S  System 
  4485.               A  Archive 
  4486.  
  4487.             On HPFS drives, if you wish to add another option after /T, you 
  4488.             must start the next option with a forward slash.  If you don't, 
  4489.             4OS2 will interpret the /T as the time display switch and the 
  4490.             following character as a valid or invalid time selector.  For 
  4491.             example: 
  4492.  
  4493.                                 [c:\] dir /tz     incorrect, will display error
  4494.                                 [c:\] dir /t/z    correct
  4495.  
  4496.     /T:acw  (Time display)  Specify which of the date and time fields on an 
  4497.             HPFS drive should be displayed and used for sorting: 
  4498.  
  4499.               a  Last access date and time. 
  4500.               c  Creation date and time. 
  4501.               w  Last write date and time (default). 
  4502.  
  4503.     /U      (sUmmary information)  Only display the number of files, the total 
  4504.             file size, and the total amount of disk space used.  Information on 
  4505.             individual files is not displayed. 
  4506.  
  4507.     /V:     (Vertical sort)  Display the filenames sorted vertically rather 
  4508.             than horizontally (use with the /2, /4 or /W options). 
  4509.  
  4510.     /W:     (Wide)  Display filenames only, horizontally across the screen.  On 
  4511.             FAT drives, /W displays as many columns as it can fit into the 
  4512.             command processor window, using 16 characters in each column. 
  4513.             Otherwise (i.e., when long filenames are displayed) the number of 
  4514.             columns depends on the width of the longest name in the listing. 
  4515.             See Multiple Column Displays above for more details. 
  4516.  
  4517.     /Z:     Display an HPFS directory in the traditional FAT format, with the 
  4518.             filename at the left and the description at the right.  Long names 
  4519.             will be truncated to 12 characters unless /X is also used; if the 
  4520.             name is longer than 12 characters, it will be followed by a right 
  4521.             arrow [] to show that one or more characters have been truncated. 
  4522.  
  4523.  
  4524. ΓòÉΓòÉΓòÉ 6.20. DIRHISTORY - Display, read, or modify the directory history list ΓòÉΓòÉΓòÉ
  4525.  
  4526.  Purpose:    Display, add to, clear, or read the directory history list. 
  4527.  
  4528.  Format:     DIRHISTORY [/A directory /F /P /R filename ] 
  4529.  
  4530.              directory :  The name of a directory to be added to the directory 
  4531.              history. 
  4532.              filename :  The name of a file containing entries to be added to 
  4533.              the directory history. 
  4534.  
  4535.              /A(dd)                          /P(ause) 
  4536.              /F(ree)                         /R(ead) 
  4537.  
  4538.  See also:  HISTORY. 
  4539.  
  4540.  Usage 
  4541.  
  4542.  Every time you change to a new directory or drive, 4OS2 records the current 
  4543.  directory in an internal directory history list.  See Directory History for 
  4544.  information on directory history window, which allows you to use the list to 
  4545.  return to a previous directory.  Also see Directory Navigation. 
  4546.  
  4547.  The DIRHISTORY command lets you view and manipulate the directory history list 
  4548.  directly.  If no parameters are entered, DIRHISTORY will display the current 
  4549.  directory history list: 
  4550.  
  4551.           [c:\] dirhistory
  4552.  
  4553.  With the options explained below, you can clear the list, add new directories 
  4554.  to the list without changing to them, save the list in a file, or read a new 
  4555.  list from a file. 
  4556.  
  4557.  The number of directories saved in the directory history list depends on the 
  4558.  length of each directory name.  The list size can be specified at startup from 
  4559.  256 to 32767 characters by using the DirHistory directive in 4OS2.INI. 
  4560.  
  4561.  Your directory history list can be stored either locally (a separate history 
  4562.  list for each copy of the command processor) or globally (all copies of the 
  4563.  command processor share the same list).  See Directory History for the 
  4564.  discussion of local and global directory history lists. 
  4565.  
  4566.  You can save the directory history list by redirecting the output of 
  4567.  DIRHISTORY to a file.  This example saves the history to a file called DIRHIST 
  4568.  and reads it back again: 
  4569.  
  4570.           [c:\] dirhistory > dirhist
  4571.               .....
  4572.           [c:\] dirhistory /r dirhist
  4573.  
  4574.  Because the directory history stores each name only once, you don't have to 
  4575.  delete its contents before reading back the file unless you want to delete the 
  4576.  directories that were visited by the intervening commands. 
  4577.  
  4578.  If you need to save your directory history at the end of each day's work, you 
  4579.  might use commands like this in your 4START.BTM file: 
  4580.  
  4581.           if exist c:\dirhist dirhistory /r c:\dirhist
  4582.  
  4583.           alias shut*down `dirhistory > c:\dirhist`
  4584.  
  4585.  This restores the previous history list if it exists, then defines an alias 
  4586.  which will allow you to save the history before shutting off the system. 
  4587.  
  4588.  Options 
  4589.  
  4590.     /A:     (Add) Add a directory to the directory history list. 
  4591.     /F:     (Free) Erase all entries in the directory history list. 
  4592.     /P:     (Prompt) Wait for a key after displaying each page of the list. 
  4593.             Your options at the prompt are explained in Page and File Prompts. 
  4594.     /R:     (Read) Read the directory history from the specified file and 
  4595.             append it to the list currently held in memory. 
  4596.  
  4597.  
  4598. ΓòÉΓòÉΓòÉ 6.21. DIRS - Display the directory stack ΓòÉΓòÉΓòÉ
  4599.  
  4600.  Purpose:    Display the current directory stack. 
  4601.  
  4602.  Format:     DIRS 
  4603.  
  4604.  See also:  PUSHD, POPD, and Directory Navigation. 
  4605.  
  4606.  Usage 
  4607.  
  4608.  The PUSHD command adds the current default drive and directory to the 
  4609.  directory stack, a list that 4OS2 maintains in memory.  The POPD command 
  4610.  removes the top entry of the directory stack and makes that drive and 
  4611.  directory the new default.  The DIRS command displays the contents of the 
  4612.  directory stack, with the most recent entries on top (i.e., the next POPD will 
  4613.  retrieve the first entry that DIRS displays). 
  4614.  
  4615.  The directory stack holds 511 characters, enough for 20 to 40 typical drive 
  4616.  and directory entries. 
  4617.  
  4618.  
  4619. ΓòÉΓòÉΓòÉ 6.22. DO - Create loops in batch files ΓòÉΓòÉΓòÉ
  4620.  
  4621.  Purpose:    Create loops in batch files. 
  4622.  
  4623.  Format:     DO [n | FOREVER] 
  4624.                 or 
  4625.              DO varname = start TO end [BY n ] 
  4626.                 or 
  4627.              DO [WHILE | UNTIL] condition 
  4628.              DO varname IN [@]set 
  4629.                 commands 
  4630.              [ITERATE] 
  4631.              [LEAVE] 
  4632.                 commands 
  4633.              ENDDO 
  4634.  
  4635.              varname :  The environment variable that will hold the loop 
  4636.              counter, filename, or line from a file. 
  4637.              n, start, end :  Integers between 0 and 2,147,483,647 inclusive, 
  4638.              or an internal variables or variable functions that evaluate to 
  4639.              such a value. 
  4640.              condition :  A test to determine if the loop should be executed. 
  4641.              set :  A set of values for the variable. 
  4642.              commands :  One or more commands to execute each time through the 
  4643.              loop.  If you use multiple commands, they must be separated by 
  4644.              command separators or be placed on separate lines. 
  4645.  
  4646.  File Selection 
  4647.  
  4648.  Supports extended wildcards, ranges, and include lists for the set. 
  4649.  
  4650.  Usage 
  4651.  
  4652.  DO can only be used in batch files.  It cannot be used in aliases. 
  4653.  
  4654.  DO can be used to create 4 different kinds of loops.  The first, introduced by 
  4655.  DO n, is a counted loop.  The batch file lines between DO and ENDDO are 
  4656.  repeated n times.  For example: 
  4657.  
  4658.           do 5
  4659.              beep
  4660.           enddo
  4661.  
  4662.  You can also specify "forever" for n if you wish to create an endless loop 
  4663.  (you can use LEAVE or GOTO to exit such a loop; see below for details). 
  4664.  
  4665.  The second type of loop is similar to a "for loop" in programming languages 
  4666.  like BASIC.  DO creates an environment variable, varname, and sets it equal to 
  4667.  the value start (if varname already exists in the environment, it will be 
  4668.  overwritten).  DO then begins the loop process by comparing the value of 
  4669.  varname with the value of end.  If varname is less than or equal to end, DO 
  4670.  executes the batch file lines up to the ENDDO.  Next, DO adds 1 to the value 
  4671.  of varname, or adds the value n if BY n is specified, and repeats the compare 
  4672.  and execute process until varname is greater than end.  This example displays 
  4673.  the even numbers from 2 through 20: 
  4674.  
  4675.           do i = 2 to 20 by 2
  4676.              echo %i
  4677.           enddo
  4678.  
  4679.  DO can also count down, rather than up.  If n is negative, varname will 
  4680.  decrease by n with each loop, and the loop will stop when varname is less than 
  4681.  end.  For example, to display the even numbers from 2 through 20 in reverse 
  4682.  order, replace the first line of the example above with: 
  4683.  
  4684.           do i = 20 to 2 by -2
  4685.  
  4686.  The third type of loop is called a "while loop" or "until loop." DO evaluates 
  4687.  the condition, which can be any of the tests supported by the IF command, and 
  4688.  executes the lines between DO and ENDDO as long as the condition is true.  The 
  4689.  loop ends when the condition becomes false. 
  4690.  
  4691.  WHILE tests the condition at the start of the loop.  Therefore, if the 
  4692.  condition is false when the loop starts, the statements within the loop will 
  4693.  never be executed, and the batch file will continue with the statement after 
  4694.  the ENDDO. 
  4695.  
  4696.  UNTIL tests the condition at the end of the loop.  Therefore, if the condition 
  4697.  is false when the loop starts, the statements within the loop will still be 
  4698.  executed at least once. 
  4699.  
  4700.  The fourth type of loop executes the lines between DO and ENDDO once for every 
  4701.  member of a set (this is similar to the set used in the FOR command). 
  4702.  Normally, the set is a list of files specified with wildcards.  For example: 
  4703.  
  4704.           do x in *.txt
  4705.  
  4706.  will execute the loop once for every .TXT file in the current directory; each 
  4707.  time through the loop the variable x will be set to the name of the next file 
  4708.  that matches the file specification. 
  4709.  
  4710.  If, between DO and ENDDO, you create a new file that could be included in the 
  4711.  list of files, it may or may not appear in an iteration of the DO loop. 
  4712.  Whether the new file appears depends on its physical location in the directory 
  4713.  structure, a condition over which 4OS2 has no control. 
  4714.  
  4715.  You can also execute the loop once for each line of text in a file by placing 
  4716.  an [@] in front of the file name.  If you have a file called DRIVES.TXT that 
  4717.  contains a list of drives on your computer, one drive name per line, you can 
  4718.  execute the loop once for each drive this way: 
  4719.  
  4720.           do x in @drives.txt
  4721.  
  4722.  To execute the loop once for each line of text in the clipboard, use CLIP: as 
  4723.  the file name (e.g. DO X IN @CLIP:).  CLIP: will not return any data unless 
  4724.  the clipboard contains text.  See Redirection for additional information on 
  4725.  CLIP:. 
  4726.  
  4727.  Two special commands, ITERATE and LEAVE, can only be used inside a DO / ENDDO 
  4728.  loop.  ITERATE ignores the remaining lines inside the loop and returns to the 
  4729.  beginning of loop for another iteration (unless DO determines that the loop is 
  4730.  finished).  LEAVE exits from the current DO loop and continues with the line 
  4731.  following ENDDO. Both ITERATE and LEAVE are most often used in an IF or IFF 
  4732.  command: 
  4733.  
  4734.           do while "%var" != "%var1"
  4735.              ...
  4736.              if "%var" == "%val2" leave
  4737.           enddo
  4738.  
  4739.  You can nest DO loops up to 15 levels deep. 
  4740.  
  4741.  The DO and ENDDO commands must be on separate lines, and cannot be placed 
  4742.  within a command group, or on the same line as other commands (this is the 
  4743.  reason DO cannot be used in aliases).  However, commands within the DO loop 
  4744.  can use command groups or the command separator in the normal way. 
  4745.  
  4746.  You can exit from all DO / ENDDO loops by using GOTO to a line past the last 
  4747.  ENDDO.  However, be sure to read the cautionary notes about GOTO and DO under 
  4748.  the GOTO command before using a GOTO in any other way inside any DO loop. 
  4749.  
  4750.  
  4751. ΓòÉΓòÉΓòÉ 6.23. DPATH - Set the data search path ΓòÉΓòÉΓòÉ
  4752.  
  4753.  Purpose:    Specify the subdirectories which applications will search to find 
  4754.              files that are not in the current directory. 
  4755.  
  4756.  Format:     DPATH [directory [;directory... ]] 
  4757.  
  4758.              directory :  The full name of a directory to include in the DPATH 
  4759.              (data path) setting. 
  4760.  
  4761.  See also:  PATH, SET, and ESET. 
  4762.  
  4763.  Usage 
  4764.  
  4765.  When most OS/2 applications try to open a data file, they look for the file in 
  4766.  the current directory first.  If they fail to find the file there, they may 
  4767.  search each of the directories in the DPATH setting in the order that they are 
  4768.  included.  Internal commands like TYPE do not search the DPATH directories for 
  4769.  files. 
  4770.  
  4771.  For example, the following DPATH command directs applications to look for 
  4772.  files in this order:  the current directory, the INIT directory on C, and the 
  4773.  CONFIG directory on D: 
  4774.  
  4775.           [c:\] dpath c:\init;d:\config
  4776.  
  4777.  The listing of directories to be searched can be set or viewed with DPATH. 
  4778.  The list is stored as an environment string with the variable name DPATH, and 
  4779.  can also be set or viewed with the SET command and edited with the ESET 
  4780.  command. 
  4781.  
  4782.  Directory names in the DPATH must be separated with semicolons [;].  4OS2 will 
  4783.  not shift directory names in the DPATH to upper case as it does with those in 
  4784.  the PATH setting.  If you want the names in the DPATH to be in upper case you 
  4785.  must enter them that way. 
  4786.  
  4787.  If you enter DPATH with no parameters, 4OS2 displays the current DPATH search 
  4788.  list. 
  4789.  
  4790.  
  4791. ΓòÉΓòÉΓòÉ 6.24. DRAWBOX - Draw a box ΓòÉΓòÉΓòÉ
  4792.  
  4793.  Purpose:    Draw a box on the screen. 
  4794.  
  4795.  Format:     DRAWBOX ulrow ulcol lrrow lrcol style [BRIght] [BLInk] fg ON 
  4796.              [BRIght] bg [FILl [BRIght] bgfill ] [ZOOm] [SHAdow] 
  4797.  
  4798.              ulrow :  Row for upper left corner 
  4799.              ulcol :  Column for upper left corner 
  4800.              lrrow :  Row for lower right corner 
  4801.              lrcol :  Column for lower right corner 
  4802.              style :  Box drawing style: 
  4803.                  0   No lines (box is drawn with blanks) 
  4804.                  1   Single line 
  4805.                  2   Double line 
  4806.                  3   Single line on top and bottom, double on sides 
  4807.                  4   Double line on top and bottom, single on sides 
  4808.              fg :  Foreground character color 
  4809.              bg :  Background character color 
  4810.              bgfill :  Background fill color (for the inside of the box) 
  4811.  
  4812.  See also:  DRAWHLINE and DRAWVLINE. 
  4813.  
  4814.  Usage 
  4815.  
  4816.  DRAWBOX is useful for creating attractive screen displays in batch files. 
  4817.  
  4818.  For example, to draw a box around the edge of an 80x25 screen with bright 
  4819.  white lines on a blue background: 
  4820.  
  4821.           drawbox 0 0 24 79 1 bri whi on blu fill blu
  4822.  
  4823.  See Colors and Color Names for details about colors and notes on the use of 
  4824.  bright background colors. 
  4825.  
  4826.  If you use ZOOM, the box appears to grow in steps to its final size.  The 
  4827.  speed of the zoom operation depends on the speed of your computer and video 
  4828.  system. 
  4829.  
  4830.  If you use SHADOW, a drop shadow is created by changing the characters in the 
  4831.  row under the box and the 2 columns to the right of the box to normal 
  4832.  intensity text with a black background (this will make characters displayed in 
  4833.  black disappear entirely). 
  4834.  
  4835.  The row and column values are zero-based, so on a standard 25 line by 80 
  4836.  column display, valid rows are 0 - 24 and valid columns are 0 - 79. 
  4837.  
  4838.  DRAWBOX checks for valid row and column values, and displays a "Usage" error 
  4839.  message if any values are out of range. 
  4840.  
  4841.  Unlike DRAWHLINE and DRAWVLINE, DRAWBOX does not automatically connect boxes 
  4842.  to existing lines on the screen with the proper connector characters.  If you 
  4843.  want to draw lines inside a box and have the proper connectors drawn 
  4844.  automatically, draw the box first, then use DRAWHLINE and DRAWVLINE to draw 
  4845.  the lines. 
  4846.  
  4847.  DRAWBOX uses the standard line and box drawing characters in the U.S. English 
  4848.  extended ASCII character set.  If your system is configured for a different 
  4849.  country or language, or a font which does not include these characters, the 
  4850.  box may not appear on your screen as you expect. 
  4851.  
  4852.  
  4853. ΓòÉΓòÉΓòÉ 6.25. DRAWHLINE - Draw a horizontal line ΓòÉΓòÉΓòÉ
  4854.  
  4855.  Purpose:    Draw a horizontal line on the screen. 
  4856.  
  4857.  Format:     DRAWHLINE row column len style [BRIght] [BLInk] fg ON [BRIght] bg 
  4858.  
  4859.              row :  Starting row 
  4860.              column :  Starting column 
  4861.              len :  Length of line 
  4862.              style :  Line drawing style: 
  4863.                  1   Single line 
  4864.                  2   Double line 
  4865.              fg :  Foreground character color 
  4866.              bg :  Background character color 
  4867.  
  4868.  See also:  DRAWBOX and DRAWVLINE. 
  4869.  
  4870.  Usage 
  4871.  
  4872.  DRAWHLINE is useful for creating attractive screen displays in batch files. 
  4873.  It detects other lines and boxes on the display, and creates the appropriate 
  4874.  connector characters when possible (not all types of lines can be connected 
  4875.  with the available characters). 
  4876.  
  4877.  For example, the following command draws a double line along the top row of 
  4878.  the display with green characters on a blue background: 
  4879.  
  4880.           drawhline 0 0 80 2 green on blue
  4881.  
  4882.  The row and column values are zero-based, so on a standard 25 line by 80 
  4883.  column display, valid rows are 0 - 24 and valid columns are 0 - 79.  DRAWHLINE 
  4884.  checks for a valid row and column, and displays a "Usage" error message if 
  4885.  either value is out of range. 
  4886.  
  4887.  See Colors and Color Names for details about colors and notes on the use of 
  4888.  bright background colors. 
  4889.  
  4890.  DRAWHLINE uses the standard line and box drawing characters in the U.S. 
  4891.  English extended ASCII character set.  If your system is configured for a 
  4892.  different country or language, or a font which does not include these 
  4893.  characters, the box may not appear on your screen as you expect. 
  4894.  
  4895.  
  4896. ΓòÉΓòÉΓòÉ 6.26. DRAWVLINE - Draw a vertical line ΓòÉΓòÉΓòÉ
  4897.  
  4898.  Purpose:    Draw a vertical line on the screen. 
  4899.  
  4900.  Format:     DRAWVLINE row column len style [BRIght][BLInk] fg ON [BRIght] bg 
  4901.  
  4902.              row :  Starting row 
  4903.              column :  Starting column 
  4904.              len :  Length of line 
  4905.              style :  Line drawing style: 
  4906.                  1   Single line 
  4907.                  2   Double line 
  4908.              fg :  Foreground character color 
  4909.              bg :  Background character color 
  4910.  
  4911.  See also:  DRAWBOX and DRAWHLINE. 
  4912.  
  4913.  Usage 
  4914.  
  4915.  DRAWVLINE is useful for creating attractive screen displays in batch files. 
  4916.  It detects other lines and boxes on the display, and creates the appropriate 
  4917.  connector characters when possible (not all types of lines can be connected 
  4918.  with the available characters). 
  4919.  
  4920.  For example, to draw a double width line along the left margin of the display 
  4921.  with bright red characters on a black background: 
  4922.  
  4923.           drawvline 0 0 25 2 bright red on black
  4924.  
  4925.  The row and column values are zero-based, so on a standard 25 line by 80 
  4926.  column display, valid rows are 0 - 24 and valid columns are 0 - 79.  DRAWVLINE 
  4927.  checks for a valid row and column, and displays a "Usage" error message if 
  4928.  either value is out of range. 
  4929.  
  4930.  See Colors and Color Names for details about colors and notes on the use of 
  4931.  bright background colors. 
  4932.  
  4933.  DRAWVLINE uses the standard line and box drawing characters in the U.S. 
  4934.  English extended ASCII character set.  If your system is configured for a 
  4935.  different country or language, or a font which does not include these 
  4936.  characters, the box may not appear on your screen as you expect. 
  4937.  
  4938.  
  4939. ΓòÉΓòÉΓòÉ 6.27. ECHO and ECHOERR - Display a message / set echo state ΓòÉΓòÉΓòÉ
  4940.  
  4941.  Purpose:    Display a message, enable or disable batch file or command-line 
  4942.              echoing, or display the echo status. 
  4943.  
  4944.  Format:     ECHO [ON | OFF | message ] 
  4945.              ECHOERR message 
  4946.  
  4947.              message :  Text to display. 
  4948.  
  4949.  See also:  ECHOS, SCREEN, SCRPUT, SETDOS and TEXT. 
  4950.  
  4951.  Usage 
  4952.  
  4953.  4OS2 has a separate echo capability for batch files and for the command line. 
  4954.  The command-line ECHO state is independent of the batch file ECHO state; 
  4955.  changing ECHO in a batch file has no effect on the display at the command 
  4956.  prompt, and vice versa. 
  4957.  
  4958.  To see the current echo state, use the ECHO command with no arguments.  This 
  4959.  displays either the batch file or command-line echo state, depending on where 
  4960.  the ECHO command is performed. 
  4961.  
  4962.  In a batch file, if you turn ECHO on, each line of the file is displayed 
  4963.  before it is executed.  If you turn ECHO off, each line is executed without 
  4964.  being displayed.  ECHO can also be used in a batch file to display a message 
  4965.  on the screen.  Regardless of the ECHO state, a batch file line that begins 
  4966.  with the [@] character will not be displayed.  To turn off batch file echoing, 
  4967.  without displaying the ECHO command, use this line: 
  4968.  
  4969.           @echo off
  4970.  
  4971.  ECHO commands in a batch file will send messages to the screen while the batch 
  4972.  file executes, even if ECHO is set OFF.  For example, this line will display a 
  4973.  message in a batch file: 
  4974.  
  4975.           echo Processing your print files...
  4976.  
  4977.  If you want to echo a blank line from within a batch file, enter: 
  4978.  
  4979.           echo.
  4980.  
  4981.  You cannot use the command separator character [&], or the redirection symbols 
  4982.  [| > <] in an ECHO message, unless you enclose them in quotes (see Argument 
  4983.  Quoting) or precede them with the escape character. 
  4984.  
  4985.  ECHO defaults to ON in batch files.  The current ECHO state is inherited by 
  4986.  called batch files.  You can change the default setting to ECHO OFF with the 
  4987.  SETDOS /V0 command, the Options 1 page of the OPTION dialogs, or the BatchEcho 
  4988.  directive in the .INI file. 
  4989.  
  4990.  If you turn the command-line ECHO on, each command will be displayed before it 
  4991.  is executed.  This will let you see the command line after expansion of all 
  4992.  aliases and variables.  The command-line ECHO is most useful when you are 
  4993.  learning how to use advanced features.  This example will turn command-line 
  4994.  echoing on: 
  4995.  
  4996.           [c:\] echo on
  4997.  
  4998.  ECHO defaults to OFF at the command line. 
  4999.  
  5000.  ECHOERR acts like ECHO but sends its output to the standard error device 
  5001.  (usually the screen) instead of the standard output device.  If the standard 
  5002.  output of a batch file is redirected to a file or another device with >, 
  5003.  ECHOERR will still generate a screen message.  See Redirection and Piping for 
  5004.  more information about the standard output and standard error devices and 
  5005.  redirection. 
  5006.  
  5007.  
  5008. ΓòÉΓòÉΓòÉ 6.28. ECHOS and ECHOSERR - Display a message without CR/LF ΓòÉΓòÉΓòÉ
  5009.  
  5010.  Purpose:    Display a message without a trailing carriage return and line 
  5011.              feed. 
  5012.  
  5013.  Format:     ECHOS message 
  5014.              ECHOSERR message 
  5015.  
  5016.  See also:  ECHO, SCREEN, SCRPUT, TEXT, and VSCRPUT. 
  5017.  
  5018.  Usage 
  5019.  
  5020.  ECHOS is useful for text output when you don't want to add a carriage return / 
  5021.  linefeed pair at the end of the line.  For example, you can use ECHOS when you 
  5022.  need to redirect control sequences to your printer; this example sends the 
  5023.  sequence Esc P to the printer on LPT1: 
  5024.  
  5025.           [c:\] echos ^eP > lpt1:
  5026.  
  5027.  You cannot use the command separator character [&] or the redirection symbols 
  5028.  [| > <] in an ECHOS message, unless you enclose them in quotes (see Argument 
  5029.  Quoting) or precede them with the escape character. 
  5030.  
  5031.  ECHOS does not translate or modify the message text.  For example, carriage 
  5032.  return characters are not translated to CR/LF pairs.  ECHOS sends only the 
  5033.  characters you enter (after escape character and back quote processing).  The 
  5034.  only character you cannot put into an ECHOS message is the NUL character 
  5035.  (ASCII 0). 
  5036.  
  5037.  ECHOSERR acts like ECHOS but sends its output to the standard error device 
  5038.  (usually the screen) instead of the standard output device.  If the standard 
  5039.  output of a batch file is redirected to a file or another device with >, 
  5040.  ECHOSERR will still generate a screen message.  See Redirection and Piping for 
  5041.  more information about the standard output and standard error devices and 
  5042.  redirection. 
  5043.  
  5044.  
  5045. ΓòÉΓòÉΓòÉ 6.29. ENDLOCAL - Restore the saved environment ΓòÉΓòÉΓòÉ
  5046.  
  5047.  Purpose:    Restore the saved disk drive, directory, environment, alias list, 
  5048.              and special characters. 
  5049.  
  5050.  Format:     ENDLOCAL 
  5051.  
  5052.  See also:  SETLOCAL. 
  5053.  
  5054.  Usage 
  5055.  
  5056.  The SETLOCAL command in a batch file saves the current disk drive, default 
  5057.  directory, all environment variables, the alias list, and the command 
  5058.  separator, escape character, parameter character, decimal separator, and 
  5059.  thousands separator.  ENDLOCAL restores everything that was saved by the 
  5060.  previous SETLOCAL command. 
  5061.  
  5062.  For example, this batch file fragment saves everything, removes all aliases so 
  5063.  that user aliases will not affect batch file commands, changes the disk and 
  5064.  directory, changes the command separator, runs a program, and then restores 
  5065.  the original values: 
  5066.  
  5067.           setlocal
  5068.           unalias *
  5069.           cdd d:\test
  5070.           setdos /c~
  5071.           program ~ echo Done!
  5072.           endlocal
  5073.  
  5074.  SETLOCAL and ENDLOCAL can only be used in batch files, not in aliases or from 
  5075.  the command line. 
  5076.  
  5077.  
  5078. ΓòÉΓòÉΓòÉ 6.30. ESET - Edit environment variables and aliases ΓòÉΓòÉΓòÉ
  5079.  
  5080.  Purpose:    Edit environment variables and aliases. 
  5081.  
  5082.  Format:     ESET [/A] variable name ... 
  5083.  
  5084.              variable name :  The name of an environment variable or alias to 
  5085.              edit. 
  5086.  
  5087.              /A(lias) 
  5088.  
  5089.  See also:  ALIAS, UNALIAS, SET, and UNSET. 
  5090.  
  5091.  Usage 
  5092.  
  5093.  ESET allows you to edit environment variables and aliases using line editing 
  5094.  commands (see Command-Line Editing). 
  5095.  
  5096.  For example, to edit the executable file search path: 
  5097.  
  5098.           [c:\] eset path
  5099.           path=c:\;c:\dos;c:\util
  5100.  
  5101.  To create and then edit an alias: 
  5102.  
  5103.           [c:\] alias d = dir /d/j/p
  5104.           [c:\] eset d
  5105.           d=dir /d/j/p
  5106.  
  5107.  ESET will search for environment variables first and then aliases. If you have 
  5108.  an environment variable and an alias with the same name, ESET will edit the 
  5109.  environment variable and ignore the alias unless you use the /A option. 
  5110.  
  5111.  Environment variable and alias names are normally limited to 80 characters. 
  5112.  Their values are normally limited to 1,023 characters.  However, if you use 
  5113.  special techniques to create a longer environment variable, ESET will edit it 
  5114.  provided the variable contains no more than 2,047 characters of text. 
  5115.  
  5116.  If you have enabled global aliases (see ALIAS), any changes made to an alias 
  5117.  with ESET will immediately affect all other copies of 4OS2 which are using the 
  5118.  same alias list. 
  5119.  
  5120.  Options 
  5121.  
  5122.     /A:     (Alias) Edit the named alias even if an environment variable of the 
  5123.             same name exists.  If you have an alias and an environment variable 
  5124.             with the same name, you must use this switch to be able to edit the 
  5125.             alias. 
  5126.  
  5127.  
  5128. ΓòÉΓòÉΓòÉ 6.31. EXCEPT - Exclude files from a command ΓòÉΓòÉΓòÉ
  5129.  
  5130.  Purpose:    Perform a command on all available files except those specified. 
  5131.  
  5132.  Format:     EXCEPT (file ) command 
  5133.  
  5134.              file :  The file or files to exclude from the command. 
  5135.              command :  The command to execute, including all appropriate 
  5136.              arguments and switches. 
  5137.  
  5138.  See also:  ATTRIB and File Exclusion Ranges. 
  5139.  
  5140.  File Selection 
  5141.  
  5142.  Supports extended wildcards, ranges, multiple file names, and include lists. 
  5143.  Ranges must appear immediately after the EXCEPT keyword. 
  5144.  
  5145.  Usage 
  5146.  
  5147.  EXCEPT provides a means of executing a command on a group of files and/or 
  5148.  subdirectories, and excluding a subgroup from the operation. The command can 
  5149.  be an internal command or alias, an external command, or a batch file. 
  5150.  
  5151.  You may use wildcards to specify the files to exclude from the command.  The 
  5152.  first example erases all the files in the current directory except those 
  5153.  beginning with MEMO, and those whose extension is .WKS.  The second example 
  5154.  copies all the files and subdirectories on drive C to drive D except those in 
  5155.  C:\MSC and C:\DOS, using the COPY command: 
  5156.  
  5157.           [c:\] except (memo*.* *.wks) erase *.*
  5158.           [c:\] except (c:\msc c:\dos) copy c:\*.* d:\ /s
  5159.  
  5160.  Date, time, and size ranges can be used immediately after the word EXCEPT to 
  5161.  further qualify which files should be excluded from the command.  If the 
  5162.  command is an internal command that supports ranges, an independent range can 
  5163.  also be used in the command itself. 
  5164.  
  5165.  When you use EXCEPT on an HPFS drive, you must quote any file names inside the 
  5166.  parentheses which contain whitespace or special characters. For example, to 
  5167.  copy all files except those in the "Program Files" directory to drive E:\: 
  5168.  
  5169.           [c:\] except ("Program Files") copy /s *.* e:\
  5170.  
  5171.  EXCEPT prevents operations on the specified file(s) by setting the hidden 
  5172.  attribute, performing the command, and then clearing the hidden attribute.  If 
  5173.  the command is aborted in an unusual way, you may need to use the ATTRIB 
  5174.  command to remove the hidden attribute from the file(s). 
  5175.  
  5176.  Caution:  EXCEPT will not work with programs or commands that ignore the 
  5177.  hidden attribute or which work explicitly with hidden files, including DEL /Z, 
  5178.  and the /H (process hidden files) switch available in some 4OS2 file 
  5179.  processing commands. 
  5180.  
  5181.  File exclusion ranges provide a faster and more flexible method of excluding 
  5182.  files from internal commands, and do not manipulate file attributes, as EXCEPT 
  5183.  does.  However, exclusion ranges can only be used with 4OS2 internal commands; 
  5184.  you must use EXCEPT for external commands. 
  5185.  
  5186.  Date, time, and size ranges can be used immediately after the word EXCEPT to 
  5187.  further qualify which files should be excluded from the command.  If the 
  5188.  command is an internal command that supports ranges, an independent range can 
  5189.  also be used in the command itself.  You can also use a file exclusion range 
  5190.  within the EXCEPT command; however, this will select files to be excluded from 
  5191.  EXCEPT, and therefore included in execution of the command. 
  5192.  
  5193.  You can use command grouping to execute multiple commands with a single 
  5194.  EXCEPT.  For example, the following command copies all files in the current 
  5195.  directory whose extensions begin with .DA, except the .DAT files, to the 
  5196.  D:\SAVE directory, then changes the first two characters of the extension of 
  5197.  the copied files to .SA : 
  5198.  
  5199.           [c:\data] except (*.dat) (copy *.da* d:\save & ren *.da* *.sa*)
  5200.  
  5201.  If you use filename completion (see Filename Completion) to enter the 
  5202.  filenames inside the parentheses, type a space after the open parenthesis 
  5203.  before entering a partial filename or pressing Tab.  Otherwise, the 
  5204.  command-line editor will treat the open parenthesis as the first character of 
  5205.  the filename to be completed. 
  5206.  
  5207.  
  5208. ΓòÉΓòÉΓòÉ 6.32. EXIT - Exit 4OS2 ΓòÉΓòÉΓòÉ
  5209.  
  5210.  Purpose:    Return from 4OS2. 
  5211.  
  5212.  Format:     EXIT [value ] 
  5213.  
  5214.              value :  The numeric exit code to return. 
  5215.  
  5216.  Usage 
  5217.  
  5218.  EXIT terminates the current copy of 4OS2.  Use it to return to an application 
  5219.  when you have "shelled out" to work at the prompt, or to end an OS/2 
  5220.  command-line session. 
  5221.  
  5222.  To close the session, or to return to the application that started 4OS2, type: 
  5223.  
  5224.           [c:\] exit
  5225.  
  5226.  If you specify a value, EXIT will return that value to the program that 
  5227.  started 4OS2.  For example: 
  5228.  
  5229.           [c:\] exit 255
  5230.  
  5231.  The value is a number you can use to inform the program of some result, such 
  5232.  as the success or failure of a batch file.  It can range from 0 - 
  5233.  4,294,967,295.  This feature is most useful for systems which use batch files 
  5234.  to automate their operation, such as bulletin boards, or custom application 
  5235.  programs like databases that shell to 4OS2 to perform certain tasks. 
  5236.  
  5237.  
  5238. ΓòÉΓòÉΓòÉ 6.33. FFIND - Search for files ΓòÉΓòÉΓòÉ
  5239.  
  5240.  Purpose:    Search for files by name or contents. 
  5241.  
  5242.  Format:     FFIND [/A[:][[-]rhsda] /B /C /D[list ] /E /I /K /L /M 
  5243.              /O[[:][-]acdeginrsu] /P /R /S /T"xx" /V /X["xx xx ..."] file... 
  5244.  
  5245.              list :  A list of disk drive letters (without colons). 
  5246.              file :  The file, directory, or list of files or directories to 
  5247.              display. 
  5248.  
  5249.              /A(ttribute select)             /M (no footers) 
  5250.              /B(are)                         /O(rder) 
  5251.              /C(ase sensitive)               /P(ause) 
  5252.              /D(rive)                        /R(everse) 
  5253.              /E (upper case display)         /S(ubdirectories) 
  5254.              /I(gnore wildcards)             /T"xx" (text search string) 
  5255.              /K (no headers)                 /V(erbose) 
  5256.              /L(ine numbers)                 /X["xx"] (hex display/search 
  5257.                                              string) 
  5258.  
  5259.  File Selection 
  5260.  
  5261.  Supports extended wildcards, ranges, multiple file names, and include lists. 
  5262.  
  5263.  Usage 
  5264.  
  5265.  FFIND is a flexible search command that looks for files based on their names 
  5266.  and their contents. Depending on the options you choose, FFIND can display 
  5267.  filenames, matching text, or a combination of both in a variety of formats. 
  5268.  
  5269.  If you want to search for files by name, FFIND works much like the DIR 
  5270.  command.  For example, to generate a list of all the .BTM files in the current 
  5271.  directory, you could use the command: 
  5272.  
  5273.           [c:\] ffind *.btm
  5274.  
  5275.  The output from this command is a list of full pathnames, followed by the 
  5276.  number of files found. 
  5277.  
  5278.  If you want to limit the output to a list of *.BTM files which contain the 
  5279.  string color, you could use this command instead: 
  5280.  
  5281.           [c:\] ffind /t"color" *.btm
  5282.  
  5283.  The output from this command is a list of files that contain the string color 
  5284.  along with the first line in each file that contains that string.  By default, 
  5285.  FFIND uses a case-insensitve search, so the command above will include files 
  5286.  that contain COLOR, Color, color, or any other combination of upper-case and 
  5287.  lower-case letters. 
  5288.  
  5289.  If you would rather see the last line of each file that contains the search 
  5290.  string, use the /R option, which forces FFIND to search from the end of each 
  5291.  file to the beginning.  This option will also speed up searches somewhat if 
  5292.  you are looking for text that will normally be at the end of a file, such as a 
  5293.  signature line: 
  5294.  
  5295.           [c:\] ffind /r /t"Sincerely," *.txt
  5296.  
  5297.  You can use extended wildcards in the search string to increase the 
  5298.  flexibility of FFIND's search.  For example, the following command will find 
  5299.  .TXT files which contain either the string June or July.  It will also find 
  5300.  Juny and Jule.  The /C option makes the search case-sensitive: 
  5301.  
  5302.           [c:\] ffind /c /t"Ju[nl][ey]" *.txt
  5303.  
  5304.  If you want to search for text that contains wildcard characters (*, ?, [, or 
  5305.  ]), you can use the /I option to force FFIND to interpret these as normal 
  5306.  characters instead of wildcards.  The following command, for example, finds 
  5307.  all .TXT files that contain a question mark: 
  5308.  
  5309.           [c:\] ffind /i /t"?" *.txt
  5310.  
  5311.  At times, you may need to search for data that cannot be represented by ASCII 
  5312.  characters.  You can use FFIND's /X option to represent the search string in 
  5313.  hexadecimal format (this option also changes the output to show hexadecimal 
  5314.  offsets rather than text lines).  With /X, the search must be represented by 
  5315.  pairs of hexadecimal digits separated by spaces; a search of this type is 
  5316.  always case-sensitive (in the example below, 41 63 65 is the hex code for 
  5317.  "Ace"): 
  5318.  
  5319.           [c:\] ffind /x"41 63 65" *.txt
  5320.  
  5321.  You can use FFIND's other options to further specify the files for which you 
  5322.  are searching and to modify the way in which the output is displayed. 
  5323.  
  5324.  Options 
  5325.  
  5326.     /A:     (Attribute select) Select only those files that have the specified 
  5327.             attribute(s) set.  Preceding the attribute character with a hyphen 
  5328.             [-] will select files that do not have that attribute set.  The 
  5329.             colon [:] after /A is optional.  The attributes are: 
  5330.  
  5331.                            R  Read-only 
  5332.                            H  Hidden 
  5333.                            S  System 
  5334.                            D  Subdirectory 
  5335.                            A  Archive 
  5336.  
  5337.             If no attributes are listed at all (e.g., FFIND /A ...), FFIND will 
  5338.             select all files and subdirectories including hidden and system 
  5339.             files.  If attributes are combined, all the specified attributes 
  5340.             must match for a file to be selected.  For example, /A:RHS will 
  5341.             select only those files with all three attributes set. 
  5342.  
  5343.     /B:     (Bare) Display file names only and omit the text that matches the 
  5344.             search.  This option is only useful in combination with /T or /X, 
  5345.             which normally force FFIND to display file names and matching text. 
  5346.  
  5347.     /C:     (Case sensitive) Perform a case-sensitive search.  This option is 
  5348.             only valid with /T, which defaults to a case-insensitive search. 
  5349.             It is not needed with a /X hexadecimal search, which is always 
  5350.             case-sensitive. 
  5351.  
  5352.     /D:     (Drive)  Search all files on one or more drives.  If you use /D 
  5353.             without a list of drives, FFIND will search the drives specified in 
  5354.             the list of files.  If no drive letters are listed, FFIND will 
  5355.             search all of the current drive.  You can include a list of drives 
  5356.             or a range of drives to search as part of the /D option.  For 
  5357.             example, to search drives C:, D:, E:, and G:, you can use either of 
  5358.             these commands: 
  5359.  
  5360.                                 [c:\] ffind /dcdeg ...
  5361.                                 [c:\] ffind /dc-eg ...
  5362.  
  5363.             Drive letters listed after /D will be ignored when processing file 
  5364.             names which also include a drive letter.  For example, this command 
  5365.             displays all the .BTM files on C: and E:, but only the .BAT files 
  5366.             on D: 
  5367.  
  5368.                                 [c:\] ffind /s /dce *.btm d:\*.bat
  5369.  
  5370.     /E:     Display filenames in the traditional upper case; also see SETDOS /U 
  5371.             and the UpperCase directive in 4OS2.INI. 
  5372.  
  5373.     /I:     (Ignore wildcards) Only meaningful when used in conjunction with 
  5374.             the /T"text" option.  Suppresses the recognition of wildcard 
  5375.             characters in the search text.  This option is useful if you need 
  5376.             to search for characters that would normally be interpreted as 
  5377.             wildcards: *, ?, [, and ]. 
  5378.  
  5379.     /K:     (No headers) Suppress the display of the header or filename for 
  5380.             each matching text line. 
  5381.  
  5382.     /L:     (Line numbers) Include the line number for each text line 
  5383.             displayed.  FFIND numbers lines beginning with 1, unless 
  5384.             ListRowStart is set to 0 in 4OS2.INI.  A new line is counted for 
  5385.             every CR or LF character (FFIND determines automatically which 
  5386.             character is used for line breaks in each file), or when line 
  5387.             length reaches 511 characters, whichever comes first. 
  5388.  
  5389.     /M:     (No footers) Suppress the footer (the number of files and number of 
  5390.             matches) at the end of FFIND's display. 
  5391.  
  5392.     /O:     (Order) Set the sorting order.  You may use any combination of the 
  5393.             following sorting options; if multiple options are used, the 
  5394.             listing will be sorted with the first sort option as the primary 
  5395.             key, the next as the secondary key, and so on: 
  5396.  
  5397.                            -  Reverse the sort order for the next option. 
  5398.                            a  Sort in ASCII order, not numerically, when there 
  5399.                          are digits in the name. 
  5400.                            d  Sort by date and time (oldest first); for HPFS 
  5401.                          drives, also see /T. 
  5402.                            e  Sort by extension. 
  5403.                            g  Group subdirectories first, then files. 
  5404.                            i  Sort by file description (ignored if /C or /O:c 
  5405.                          is used). 
  5406.                            n  Sort by filename (this is the default). 
  5407.                            r  Reverse the sort order for all options. 
  5408.                            s  Sort by size. 
  5409.                            u  Unsorted. 
  5410.  
  5411.     /P:     (Pause) Wait for a key to be pressed after each screen page before 
  5412.             continuing the display.  Your options at the prompt are explained 
  5413.             in detail under Page and File Prompts. 
  5414.  
  5415.     /R:     (Reverse) Only meaningful when used in conjuction with the /T"text" 
  5416.             or /X  options.  Searches each file from the end backwards to the 
  5417.             beginning.  This option is useful if you want to display the last 
  5418.             occurrence of the search string in each file instead of the first 
  5419.             (the default).  It can also speed up searches for information that 
  5420.             is normally at the end of a file, such as a signature. 
  5421.  
  5422.     /S:     (Subdirectories) Display matches from the current directory and all 
  5423.             of its subdirectories. 
  5424.  
  5425.     /T"xx": (Text search) Specify the text search string.  /T must be followed 
  5426.             by a text string in double quotes (e.g., /t"color").  FFIND will 
  5427.             perform a case-insensitive search unless you also use the /C 
  5428.             option.  For a hexadecimal search and/or hexadecimal display of the 
  5429.             location where the search string is found, see /X.   You can 
  5430.             specify a search string with either /T or /X, but not both. 
  5431.  
  5432.     /V:     (Verbose) Show every matching line.  FFIND's default behavior is to 
  5433.             show only the first matching line then and then go on to the next 
  5434.             file.  This option is only valid with /T or /X. 
  5435.  
  5436.     /X:     (Hexadecimal display / search) Specify hexadecimal display and an 
  5437.             optional hexadecimal search string. 
  5438.  
  5439.             If /X is followed by one or more pairs of hexadecimal digits in 
  5440.             quotes (e.g., /x"44 63 65"), FFIND will search for that exact 
  5441.             sequence of characters or data bytes without regard to the meaning 
  5442.             of those bytes as text.  If those bytes are found, the offset is 
  5443.             displayed (in both decimal and hexadecimal).  A search of this type 
  5444.             will always be case-sensitive. 
  5445.  
  5446.             If /X is not followed by a hexadecimal search string it must be 
  5447.             used in conjunction with /T, and will change the output format to 
  5448.             display offsets (in both decimal and hexadecimal) rather than 
  5449.             actual text lines when the search string is found.  For example, 
  5450.             this command uses /T to display the first line in each .BTM file 
  5451.             containing the word hello: 
  5452.  
  5453.                                 [c:\] ffind /t"hello" *.btm
  5454.                                 ---- c:\test.btm:
  5455.                                 echo hello
  5456.  
  5457.                                     1 line in 1 file
  5458.  
  5459.             If you use the same command with /X, the offset is displayed 
  5460.             instead of the text: 
  5461.  
  5462.                                 [c:\] ffind /t"hello" /x *.btm
  5463.                                 ---- c:\test.btm:
  5464.                                 Offset: 26 (1Ah)
  5465.  
  5466.                                     1 line in 1 file
  5467.  
  5468.             You can specify a search string with either /T or /X, but not both. 
  5469.  
  5470.  
  5471. ΓòÉΓòÉΓòÉ 6.34. FOR - Repeat a command ΓòÉΓòÉΓòÉ
  5472.  
  5473.  Purpose:    Repeat a command for several values of a variable. 
  5474.  
  5475.  Format:     FOR [/A:[[-]rhsda] /D /F ["options "] /H /L /R [path ]] %var IN 
  5476.              ([@]set | start, step, end ) [DO] command ... 
  5477.  
  5478.              options :  Parsing options for a "file parsing" FOR. 
  5479.              path :  The starting directory for a "recursive" FOR. 
  5480.              %var :  The variable to be used in the command ("FOR variable"). 
  5481.              set :  A set of values for the variable. 
  5482.              start :  The starting increment for a "counted" FOR. 
  5483.              step :  The increment value for a "counted" FOR. 
  5484.              end :  The limit value for a "counted" FOR. 
  5485.              command :  A command or group of commands to be executed for each 
  5486.              value of the variable. 
  5487.  
  5488.              /A: (Attribute select)          /L (counted loop) 
  5489.              /F(ile parsing)                 /R(ecursive) 
  5490.              /H(ide dots) 
  5491.  
  5492.  File Selection 
  5493.  
  5494.  Supports extended wildcards, ranges, multiple file names, and include lists. 
  5495.  Ranges must appear immediately after the FOR keyword. 
  5496.  
  5497.  Usage 
  5498.  
  5499.  FOR begins by creating a set.  It then executes a command for every member of 
  5500.  the set.  The command can be an internal command, an alias, an external 
  5501.  command, or a batch file.  The members of the set can be a list of file names, 
  5502.  text strings, a group of numeric values, or text read from a list of files. 
  5503.  
  5504.  When the set is made up of text or several separate file names (not an include 
  5505.  list), the elements must be separated by spaces, tabs, commas, or the switch 
  5506.  character (normally a slash [/]). 
  5507.  
  5508.  FOR includes a large number of options, some of which duplicate functions 
  5509.  available in other 4OS2 commands, and/or do not follow conventions you may 
  5510.  find in our other commands.  Most of these extra options are included for 
  5511.  compatibility with Windows NT 4.0's CMD.EXE.  However, we make them available 
  5512.  in 4OS2, 4DOS, and 4NT so that aliases and batch files which use them can work 
  5513.  under all three products. 
  5514.  
  5515.  The first three sections below (Working with Files, Working with Text, and 
  5516.  Retrieving Text from Files) describe the traditional FOR command and the 
  5517.  enhancements to it which are part of 4OS2.  The sections on Parsing Text from 
  5518.  Files and Counted FOR Loops describe features added for compatibility of our 
  5519.  line of text mode products with Windows NT 4.0.  The section entitled Other 
  5520.  Notes contains information you may need if you use any aspect of the FOR 
  5521.  command extensively. 
  5522.  
  5523.  Working with Files 
  5524.  
  5525.  Normally, the set is a list of files specified with wildcards.  For example, 
  5526.  if you use this line in a batch file: 
  5527.  
  5528.           for %x in (*.txt) do list %x
  5529.  
  5530.  then LIST will be executed once for each file in the current directory with 
  5531.  the extension .TXT.  The FOR variable %x is set equal to each of the file 
  5532.  names in turn, then the LIST command is executed for each file.  (You could do 
  5533.  the same thing more easily with a simple LIST *.TXT.  We used FOR here so you 
  5534.  could get a feel for how it operates, using a simple example.  Many of the 
  5535.  examples in this section are constructed in the same way.) 
  5536.  
  5537.  The set can include multiple files or an include list, like this: 
  5538.  
  5539.           for %x in (d:\*.txt;*.doc;*.asc) do type %x
  5540.  
  5541.  FOR supports wildcards and extended wildcards, as well as extended parent 
  5542.  directory names (e.g., ...\*.txt to process all of the .TXT files that are 
  5543.  contained in the directory 2 levels above the current directory). 
  5544.  
  5545.  When you use FOR on an HPFS drive, you must quote any file names within the 
  5546.  set which contain whitespace or special characters.  The same restriction 
  5547.  applies to names returned in the FOR variable, if you pass them to 4OS2 
  5548.  internal commands, or other commands which require quoting filenames with 
  5549.  whitespace.  FOR does not quote returned names automatically, even if you 
  5550.  included quotes in the set.  See File Names for additional details on file 
  5551.  name quoting. 
  5552.  
  5553.  If the set includes filenames, the file list can be further refined by using 
  5554.  date, time, size and file exclusion ranges.  The range or ranges must be 
  5555.  placed immediately after the word FOR.  Ranges will be ignored if no wildcards 
  5556.  are used inside the parentheses.  For example, this set is made up of all of 
  5557.  the .TXT files that were created or updated on October 4, 1997: 
  5558.  
  5559.           for /[d10-4-97,+0] %x in (*.txt) do ...
  5560.  
  5561.  If the command is an internal command that supports ranges, an independent 
  5562.  range can also be used in the command itself. 
  5563.  
  5564.  You can also refine the list by limiting it with the /A: option to select only 
  5565.  files that have specific attributes. 
  5566.  
  5567.  By default, FOR works only with files in the current directory or a specified 
  5568.  directory.  With the /R option, FOR will also search for files in 
  5569.  subdirectories.  For example, to work with all of the .TXT files in the 
  5570.  current directory and its subdirectories: 
  5571.  
  5572.           for /r %x in (*.txt) do ...
  5573.  
  5574.  If you specify a directory name immediately after /R, FOR will start in that 
  5575.  directory and then search each of its subdirectories.  This example works with 
  5576.  all of the .BAK files on drive D: 
  5577.  
  5578.           for /r d:\ %x in (*.bak) do ...
  5579.  
  5580.  When you use wildcards to specify the set, FOR scans the directory and finds 
  5581.  each file which matches the wildcard name(s) you specified.  If, during the 
  5582.  processing of the FOR command, you create a file that could be included in the 
  5583.  set, it may or may not appear in a future iteration of the same FOR command. 
  5584.  Whether the new file appears depends on its physical location in the directory 
  5585.  structure.  For example, if you use FOR to execute a command for all .TXT 
  5586.  files, and the command also creates one or more new .TXT files, those new 
  5587.  files may or may not be processed during the current FOR command, depending on 
  5588.  where they are placed in the physical structure of the directory.  This is an 
  5589.  operating system constraint over which 4OS2 have no control.  Therefore, in 
  5590.  order to achieve consistent results you should construct FOR commands which do 
  5591.  not create files that could become part of the set for the current command. 
  5592.  
  5593.  Working with Text 
  5594.  
  5595.  The set can also be made up of text instead of file names.  For example, to 
  5596.  create three files named file1, file2, and file3, each containing a blank 
  5597.  line: 
  5598.  
  5599.           for %suffix in (1 2 3) do echo. > file%suffix
  5600.  
  5601.  You could also use the names of environment variables as the text.  This 
  5602.  example displays the name and content of several variables from the 
  5603.  environment (see Environment Variables and Functions for details on the use of 
  5604.  square brackets when expanding environment variables).  Enter this on one 
  5605.  line: 
  5606.  
  5607.           for %var in (path prompt comspec) do echo %var=%[%var]
  5608.  
  5609.  Retrieving Text from Files 
  5610.  
  5611.  FOR can extract text from files in two different ways.  The first method 
  5612.  extracts each line from each file in the set and places it in the variable. 
  5613.  To use this method, place an [@] at the beginning of the set, in front of the 
  5614.  file name or names. 
  5615.  
  5616.  For example, if you have a file called DRIVES.TXT that contains a list of 
  5617.  drives on your computer, one drive name per line (with a ":" after each drive 
  5618.  letter), you can print the free space on each drive this way: 
  5619.  
  5620.           for %d in (@drives.txt) do free %d > prn
  5621.  
  5622.  Because the [@] is also a valid filename character, FOR first checks to see if 
  5623.  the file exists with the [@] in its name (i.e., a file named @DRIVES.TXT ). 
  5624.  If so, the filename is treated as a normal argument.  If it doesn't exist, FOR 
  5625.  uses the filename (without the [@]) as the file from which to retrieve text. 
  5626.  
  5627.  If you use @CON as the filename, FOR will read from standard input (a 
  5628.  redirected input file) or a pipe; see Redirection and Piping for more 
  5629.  information).  If you use @CLIP: as the filename, FOR will read any text 
  5630.  available from the OS/2 clipboard (see Redirection for details). 
  5631.  
  5632.  Parsing Text from Files 
  5633.  
  5634.  The second method of working with text from files is to have FOR parse each 
  5635.  line of each file for you.  To begin a "file-parsing" FOR, you must use the /F 
  5636.  option and then include one or more file names in the set.  When you use this 
  5637.  form of FOR, the variable must be a single letter, for example, %a. 
  5638.  
  5639.  This method of parsing, included for compatibility with Windows NT 4.0's 
  5640.  CMD.EXE, can be cumbersome and inflexible.  For a more powerful method, use 
  5641.  FOR with @filename as the set to retrieve each line from the file, as 
  5642.  described in the previous section.  Then use variable functions like @INSTR, 
  5643.  @LEFT, @RIGHT, and @WORD to parse the line. 
  5644.  
  5645.  By default, FOR will extract the first word or token from each line and return 
  5646.  it in the variable.  For example, to display the first word on each line in 
  5647.  the file FLIST.TXT: 
  5648.  
  5649.           for /f %a in (flist.txt) do echo %a
  5650.  
  5651.  You can control the way FOR /F parses each line by specifying one or more 
  5652.  parsing options in a quoted string immediately after the /F.  The available 
  5653.  options are: 
  5654.  
  5655.     skip=n:   FOR /F will skip "n" lines at the beginning of each file before 
  5656.               parsing the remainder of the file. 
  5657.     tokens=n, m, ... :By default, FOR /F returns just the first word or "token" 
  5658.               from each parsed line in the variable you named.  You can have it 
  5659.               return more than one token in the variable, or return tokens in 
  5660.               several variables, with this option. 
  5661.  
  5662.               This option is followed by a list of numbers separated by commas. 
  5663.               The first number tells FOR /F which token to return in the first 
  5664.               variable, the second number tells it which to return in the 
  5665.               second variable, etc.  The variables follow each other 
  5666.               alphabetically starting with the variable you name on the FOR 
  5667.               command line.  This example returns the first word of each line 
  5668.               in each text file in %d, the second in %e, and the third in %f: 
  5669.  
  5670.                                     for /f "tokens=1,2,3" %d in (*.txt) do ...
  5671.  
  5672.               You can also indicate a range of tokens by separating the numbers 
  5673.               with a hyphen [-].  This example returns the first word of each 
  5674.               line in %p, the second through fifth words in %q, and the eighth 
  5675.               word in %r: 
  5676.  
  5677.                                     for /f "tokens=1,2-5,8" %p in (*.txt) do ...
  5678.  
  5679.               To return the rest of the line in a variable, use a range that 
  5680.               ends with a number higher than the last token in any line, such 
  5681.               as 999.  This final example returns the first word of each line 
  5682.               in %a and the remainder of each line (assuming that no line has 
  5683.               more than 999 words!) in %b: 
  5684.  
  5685.                                     for /f "tokens=1,2-999" %a in (*.txt) do ...
  5686.  
  5687.  
  5688.     eol=c :   If FOR /F finds the character "c" in the line, it will assume 
  5689.               that the character and any text following it are part of a 
  5690.               comment and ignore the rest of the line. 
  5691.     delims=xxx... :By default, FOR /F sees spaces and tabs as word or token 
  5692.               delimiters.  This option replaces those delimiters with all of 
  5693.               the characters following the equal sign to the end of the string. 
  5694.               This option must therefore be the last one used in the quoted 
  5695.               options string. 
  5696.  
  5697.  You can also use FOR /F to parse a single string instead of each line of a 
  5698.  file by using the string, in quotes, as the set.  For example, this command 
  5699.  will assign variable A to the string "this", B to "is", etc., then display 
  5700.  "this" (enter the command on one line): 
  5701.  
  5702.           for /f "tokens=1,2,3,4" %a in ("this is a test") do echo %a
  5703.  
  5704.  "Counted" FOR Loop 
  5705.  
  5706.  The "counted FOR" loop is included only for compatibility with Windows NT 
  5707.  4.0's CMD.EXE.  In most cases, you will find the DO command more useful for 
  5708.  performing counted loops. 
  5709.  
  5710.  In a counted FOR command, the set is made up of numeric values instead of text 
  5711.  or file names.  To begin a counted FOR command, you must use the /L option and 
  5712.  then include three values, separated by commas, in the set.  These are the 
  5713.  start, step, and end values.  During the first iteration of the FOR loop, the 
  5714.  variable is set equal to the start value.  Before each iteration, the variable 
  5715.  is increased by the step value.  The loop ends when the variable exceeds the 
  5716.  end value.  This example will print the numbers from 1 to 10: 
  5717.  
  5718.           for /l %val in (1,1,10) do echo %val
  5719.  
  5720.  This example will print the odd numbers from 1 to 10 (1, 3, 5, 7, and 9): 
  5721.  
  5722.           for /l %val in (1,2,10) do echo %val
  5723.  
  5724.  The step value can be negative.  If it is, the loop will end when the variable 
  5725.  is less than the end value. 
  5726.  
  5727.  Other Notes 
  5728.  
  5729.  You can use either % or %% in front of the variable name.  Either form will 
  5730.  work, whether the FOR command is typed from the command line or is part of an 
  5731.  alias or batch file (some of the traditional command processors require a 
  5732.  single % if FOR is used at the command line, but require %% if FOR is used in 
  5733.  a batch file).  The variable name can be up to 80 characters long.  The word 
  5734.  DO is optional. 
  5735.  
  5736.  If you use a single-character FOR variable name, that name is given priority 
  5737.  over any environment variable which starts with the same letter, in order to 
  5738.  maintain compatibility with the traditional FOR command.  For example, the 
  5739.  following command tries to add a: and b: to the end of the PATH, but will not 
  5740.  work as intended: 
  5741.  
  5742.           [c:\] for %p in (a: b:) do path %path;%p
  5743.  
  5744.  The "%p" in "%path" will be interpreted as the FOR variable %p followed by the 
  5745.  text "ath", which is not what was intended.  To get around this, use a 
  5746.  different letter or a longer name for the FOR variable, or use square brackets 
  5747.  around the variable name (see Environment). 
  5748.  
  5749.  The following example uses FOR with variable functions to delete the .BAK 
  5750.  files for which a corresponding .TXT file exists in the current directory: 
  5751.  
  5752.           [c:\docs] for %file in (*.txt) do del %@name[%file].bak
  5753.  
  5754.  The above command would not work properly on an HPFS drive, because the 
  5755.  returned FILE variable might contain whitespace.  To correct this problem, you 
  5756.  would need two sets of quotes, one for DEL and one for %@NAME: 
  5757.  
  5758.           [c:\docs] for %file in (*.txt) do del "%@name["%file"].bak"
  5759.  
  5760.  You can use command grouping to execute multiple commands for each element in 
  5761.  the set.  For example, the following command copies each .WKQ file in the 
  5762.  current directory to the D:\WKSAVE directory, then changes the extension of 
  5763.  each file in the current directory to .SAV.  This should be entered on one 
  5764.  line: 
  5765.  
  5766.           [c:\text] for %file in (*.wkq) do (copy "%file" d:\wksave\ &
  5767.                     ren "%file" *.sav)
  5768.  
  5769.  In a batch file you can use GOSUB to execute a subroutine for every element in 
  5770.  the set.  Within the subroutine, the FOR variable can be used just like any 
  5771.  environment variable.  This is a convenient way to execute a complex sequence 
  5772.  of commands for every element in the set without CALLing another batch file. 
  5773.  
  5774.  One unusual use of FOR is to execute a collection of batch files or other 
  5775.  commands with the same parameter.  For example, you might want to have three 
  5776.  batch files all operate on the same data file.  The FOR command could look 
  5777.  like this: 
  5778.  
  5779.           [c:\] for %cmd in (filetest fileform fileprnt) do %cmd datafile
  5780.  
  5781.  This line will expand to three separate commands: 
  5782.  
  5783.           filetest datafile
  5784.           fileform datafile
  5785.           fileprnt datafile
  5786.  
  5787.  The variable that FOR uses (the %CMD in the example above) is created in the 
  5788.  environment and then erased when the FOR command is done.  (For compatibility 
  5789.  with CMD.EXE, a single-character FOR variable is created in a special way that 
  5790.  does not overwrite an existing environment variable with the same name.)  When 
  5791.  using a multi-character variable name you must be careful not to use the name 
  5792.  of one of your environment variables as a FOR variable.  For example, a 
  5793.  command that begins 
  5794.  
  5795.           [c:\] for %path in ...
  5796.  
  5797.  will write over your current path setting, then erase the path variable 
  5798.  completely when FOR is done. 
  5799.  
  5800.  FOR statements can be nested. 
  5801.  
  5802.  Options 
  5803.  
  5804.     /A::    (Attribute select) Select only those files that have the specified 
  5805.             attribute(s) set.  /A: will be used only when processing wildcard 
  5806.             file names in the set.  It will be ignored for filenames without 
  5807.             wildcards or other items in the set.  Preceding the attribute 
  5808.             character with a hyphen [-] will select files that do not have that 
  5809.             attribute set.  The colon [:] after /A is required.  The attributes 
  5810.             are: 
  5811.  
  5812.               R  Read-only 
  5813.               H  Hidden 
  5814.               S  System 
  5815.               D  Subdirectory 
  5816.               A  Archive 
  5817.  
  5818.             If no attributes are listed (e.g., FOR /A: ...), FOR will process 
  5819.             all files including hidden and system files.  If attributes are 
  5820.             combined, all the specified attributes must match for a file to be 
  5821.             included.  For example, /A:RHS will include only those files with 
  5822.             all three attributes set. 
  5823.  
  5824.             For example, to process only those files with the archive attribute 
  5825.             set: 
  5826.  
  5827.                                 for /a:a %f in (*.*) echo %f needs a backup!
  5828.  
  5829.     /F:     (File parsing) Return one or more words or tokens from each line of 
  5830.             each file in the set.  The /F option can be followed by one or more 
  5831.             options in a quoted string which control how the parsing is 
  5832.             performed.  See the details under Parsing Text From Files, above. 
  5833.     /H:     (Hide dots) Suppress the assignment of the "." and ".." directories 
  5834.             to the FOR variable. 
  5835.     /L:     (counted loop) Interpret the three values in the set as the start, 
  5836.             step, and end values of a counted loop.  See the details under 
  5837.             "Counted" FOR Loop, above. 
  5838.     /R:     (Recursive) Look in the current directory and all of its 
  5839.             subdirectories for files in the set.  If the /R is followed by a 
  5840.             directory name, look for files in that directory and all of its 
  5841.             subdirectories. 
  5842.  
  5843.  
  5844. ΓòÉΓòÉΓòÉ 6.35. FREE - Display total and free disk space ΓòÉΓòÉΓòÉ
  5845.  
  5846.  Purpose:    Display the total disk space, total bytes used, and total bytes 
  5847.              free on the specified (or default) drive(s). 
  5848.  
  5849.  Format:     FREE [drive: ...] 
  5850.  
  5851.              drive :  One or more drives to include in the report. 
  5852.  
  5853.  See also:  MEMORY. 
  5854.  
  5855.  Usage 
  5856.  
  5857.  FREE provides the same disk information as the external command CHKDSK, but 
  5858.  without the wait, since it does not check the integrity of the file and 
  5859.  directory structure of the disk. 
  5860.  
  5861.  A colon [:] is required after each drive letter.  This example displays the 
  5862.  status of drives A and C: 
  5863.  
  5864.           [c:\] free a: c:
  5865.  
  5866.            Volume in drive A: is unlabeled    Serial number is 213A:15D5
  5867.               1,213,952 bytes total disk space
  5868.               1,115,136 bytes used
  5869.                  98,816 bytes free
  5870.  
  5871.            Volume in drive C: is DEVELOPMENT  Serial number is 2944:15D9
  5872.             242,496,000 bytes total disk space
  5873.             236,851,712 bytes used
  5874.               5,644,288 bytes free
  5875.  
  5876.  
  5877. ΓòÉΓòÉΓòÉ 6.36. GLOBAL - Execute a command all subdirectories ΓòÉΓòÉΓòÉ
  5878.  
  5879.  Purpose:    Execute a command in the current directory and its subdirectories. 
  5880.  
  5881.  Format:     GLOBAL [/H /I /P /Q] command 
  5882.  
  5883.              command :  The command to execute, including arguments and 
  5884.              switches. 
  5885.  
  5886.              /H(idden directories)           /P(rompt) 
  5887.              /I(gnore exit codes)            /Q(uiet) 
  5888.  
  5889.  Usage 
  5890.  
  5891.  GLOBAL performs the command first in the current directory and then in every 
  5892.  subdirectory under the current directory.  The command can be an internal 
  5893.  command, an alias, an external command, or a batch file. 
  5894.  
  5895.  This example copies the files in every directory on drive A to the directory 
  5896.  C:\TEMP : 
  5897.  
  5898.           [a:\] global copy *.* c:\temp
  5899.  
  5900.  If you use the /P option, GLOBAL will prompt for each subdirectory before 
  5901.  performing the command.  You can use this option if you want to perform the 
  5902.  command in most, but not all subdirectories of the current directory. 
  5903.  
  5904.  You can use command grouping to execute multiple commands in each 
  5905.  subdirectory.  For example, the following command copies each .TXT file in the 
  5906.  current directory and all of its subdirectories to drive A.  It then changes 
  5907.  the extension of each of the copied files to .SAV : 
  5908.  
  5909.           [c:\] global (copy *.txt a: & ren *.txt *.sav)
  5910.  
  5911.  Options 
  5912.  
  5913.     /H:     (Hidden directories) Forces GLOBAL to look for hidden directories. 
  5914.             If you don't use this switch, hidden directories are ignored. 
  5915.  
  5916.     /I:     (Ignore exit codes) If this option is not specified, GLOBAL will 
  5917.             terminate if the command returns a non-zero exit code.  Use /I if 
  5918.             you want the command to continue in additional subdirectories even 
  5919.             if it returns an error in one subdirectory.  Even if you use /I, 
  5920.             GLOBAL will hnormally alt execution if the command processor 
  5921.             receives a Ctrl-C or Ctrl-Break. 
  5922.  
  5923.     /P:     (Prompt) Forces GLOBAL to prompt with each directory name before it 
  5924.             performs the command.  Your options at the prompt are explained in 
  5925.             detail under Page and File Prompts. 
  5926.  
  5927.     /Q:     (Quiet) Do not display the directory names as each directory is 
  5928.             processed. 
  5929.  
  5930.  
  5931. ΓòÉΓòÉΓòÉ 6.37. GOSUB - Execute a subroutine in a batch file ΓòÉΓòÉΓòÉ
  5932.  
  5933.  Purpose:    Execute a subroutine in the current batch file. 
  5934.  
  5935.  Format:     GOSUB label 
  5936.  
  5937.              label :  The batch file label at the beginning of the subroutine. 
  5938.  
  5939.  See also:  CALL, GOTO and RETURN. 
  5940.  
  5941.  Usage 
  5942.  
  5943.  GOSUB can only be used in batch files. 
  5944.  
  5945.  4OS2 allows subroutines in batch files.  A subroutine must start with a label 
  5946.  (a colon [:] followed by a one-word label name) which appears on a line by 
  5947.  itself.  Case differences are ignored when matching labels.  Labels may be one 
  5948.  or more words long.  The subroutine must end with a RETURN statement. 
  5949.  
  5950.  The subroutine is invoked with a GOSUB command from another part of the batch 
  5951.  file.  After the RETURN, processing will continue with the command following 
  5952.  the GOSUB command.  For example, the following batch file fragment calls a 
  5953.  subroutine which displays the directory and returns: 
  5954.  
  5955.           echo Calling a subroutine
  5956.           gosub subr1
  5957.           echo Returned from the subroutine
  5958.           quit
  5959.           :subr1
  5960.           dir /a/w
  5961.           return
  5962.  
  5963.  4OS2 begins its search for the label on the next line of the batch file (after 
  5964.  the GOSUB command).  If the label is not found between the current position 
  5965.  and the end of the file, GOSUB will restart the search at the beginning of the 
  5966.  file.  If the label does not exist, the batch file is terminated with the 
  5967.  error message "Label not found." 
  5968.  
  5969.  GOSUB saves the IFF and DO states, so IFF and DO statements inside a 
  5970.  subroutine won't interfere with statements in the part of the batch file from 
  5971.  which the subroutine was called. 
  5972.  
  5973.  Subroutines can be nested. 
  5974.  
  5975.  
  5976. ΓòÉΓòÉΓòÉ 6.38. GOTO - Branch within a batch file ΓòÉΓòÉΓòÉ
  5977.  
  5978.  Purpose:    Branch to a specified line inside the current batch file. 
  5979.  
  5980.  Format:     GOTO [/I] label 
  5981.  
  5982.              label :  The batch file label to branch to. 
  5983.  
  5984.              /I(FF and DO continue) 
  5985.  
  5986.  See also:  GOSUB. 
  5987.  
  5988.  Usage 
  5989.  
  5990.  GOTO can only be used in batch files. 
  5991.  
  5992.  After a GOTO command in a batch file, the next line to be executed will be the 
  5993.  one immediately after the label.  The label must begin with a colon [:] and 
  5994.  appear on a line by itself. The colon is required on the line where the label 
  5995.  is defined, but is not required in the GOTO command itself.  Case differences 
  5996.  are ignored when matching labels.  Labels may be one or more words long. 
  5997.  
  5998.  This batch file fragment checks for the existence of the file CONFIG.SYS.  If 
  5999.  the file exists, the batch file jumps to C_EXISTS and copies all the files 
  6000.  from the current directory to the root directory on A:.  Otherwise, it prints 
  6001.  an error message and exits. 
  6002.  
  6003.           if exist config.sys goto C_EXISTS
  6004.           echo CONFIG.SYS doesn't exist - exiting.
  6005.           quit
  6006.           :C_EXISTS
  6007.           copy *.* a:\
  6008.  
  6009.  GOTO begins its search for the label on the next line of the batch file (after 
  6010.  the GOTO command).  If the label is not found between the current position and 
  6011.  the end of the file, GOTO will restart the search at the beginning of the 
  6012.  file.  If the label does not exist, the batch file is terminated with the 
  6013.  error message "Label not found." 
  6014.  
  6015.  To avoid errors in the processing of nested statements and loops, GOTO cancels 
  6016.  all active IFF statements and DO / ENDDO loops unless you use /I.  This means 
  6017.  that a normal GOTO (without /I) may not branch to any label that is between an 
  6018.  IFF and the corresponding ENDIFF or between a DO and the corresponding ENDDO. 
  6019.  
  6020.  For compatibility with Windows NT's CMD.EXE, the command 
  6021.  
  6022.           GOTO :EOF
  6023.  
  6024.  will end processing of the current batch file if the label :EOF does not 
  6025.  exist.  However, this is less efficient than using the QUIT or CANCEL command 
  6026.  to end a batch file. 
  6027.  
  6028.  Options 
  6029.  
  6030.     /I:     (IFF and DO continue) Prevents GOTO from canceling IFF statements 
  6031.             and DO loops.  Use this option only if you are absolutely certain 
  6032.             that your GOTO command is branching entirely within any current IFF 
  6033.             statement and any active DO / ENDDO block.  Using /I under any 
  6034.             other conditions will cause an error later in your batch file. 
  6035.  
  6036.             You cannot branch into another IFF statement, another DO loop, or a 
  6037.             different IFF or DO nesting level, whether you use the /I option or 
  6038.             not.  If you do, you will eventually receive an "unknown command" 
  6039.             error (or execution of the UNKNOWN_CMD alias) on a subsequent 
  6040.             ENDDO, ELSE, ELSEIFF, or ENDIFF statement. 
  6041.  
  6042.  
  6043. ΓòÉΓòÉΓòÉ 6.39. HELP - Display help ΓòÉΓòÉΓòÉ
  6044.  
  6045.  Purpose:    Display help for internal commands.  Help for external commands is 
  6046.              also available in some cases. 
  6047.  
  6048.  Format:     HELP [topic ] 
  6049.  
  6050.              topic :  A help topic, internal command, or external command. 
  6051.  
  6052.  See also:  The 4OS2 Help System. 
  6053.  
  6054.  Usage 
  6055.  
  6056.  Online help is available for 4OS2.  The 4OS2 help system uses the OS/2 help 
  6057.  facility. 
  6058.  
  6059.  See the Introduction and Installation Guide for a more thorough explanation of 
  6060.  the online help available. 
  6061.  
  6062.  If you type the command HELP by itself (or press F1 when the command line is 
  6063.  empty), the table of contents is displayed.  If you type HELP plus a topic 
  6064.  name, that topic is displayed.  For example: 
  6065.  
  6066.           help copy
  6067.  
  6068.  displays information about the COPY command and its options. 
  6069.  
  6070.  You can configure the HELP command to display OS/2's command-line help along 
  6071.  with the 4OS2's (the default), display only the 4OS2 help, or display some 
  6072.  other combination of help "books".  For details, see the HelpBook directive 
  6073.  and your Introduction and Installation Guide. 
  6074.  
  6075.  
  6076. ΓòÉΓòÉΓòÉ 6.40. HISTORY - Manage the history list ΓòÉΓòÉΓòÉ
  6077.  
  6078.  Purpose:    Display, add to, clear, or read the history list. 
  6079.  
  6080.  Format:     HISTORY [/A command /F /P /R filename ] 
  6081.  
  6082.              command :  A command to be added to the history list. 
  6083.              filename :  The name of a file containing entries to be added to 
  6084.              the history list. 
  6085.  
  6086.              /A(dd)                          /P(ause) 
  6087.              /F(ree)                         /R(ead) 
  6088.  
  6089.  See also:  DIRHISTORY and LOG. 
  6090.  
  6091.  Usage 
  6092.  
  6093.  4OS2 keeps a list of the commands you have entered on the command line.  See 
  6094.  Command History and Recall for information on command recall, which allows you 
  6095.  to use the history list to repeat or edit commands you have previously 
  6096.  executed. 
  6097.  
  6098.  The HISTORY command lets you view and manipulate the command history list 
  6099.  directly.  If no parameters are entered, HISTORY will display the current 
  6100.  command history list: 
  6101.  
  6102.           [c:\] history
  6103.  
  6104.  With the options explained below, you can clear the list, add new commands to 
  6105.  the list without executing them, save the list in a file, or read a new list 
  6106.  from a file. 
  6107.  
  6108.  The number of commands saved in the history list depends on the length of each 
  6109.  command line.  The history list size can be specified at startup from 256 to 
  6110.  32767 characters (see the History directive).  The default size is 1024 
  6111.  characters. 
  6112.  
  6113.  Your history list can be stored either locally (a separate history list for 
  6114.  each copy of 4OS2) or globally (all copies of 4OS2 share the same list).  For 
  6115.  full details see the discussion of local and global history lists under 
  6116.  Command History and Recall. 
  6117.  
  6118.  You can use the HISTORY command as an aid in writing batch files by 
  6119.  redirecting the HISTORY output to a file and then editing the file 
  6120.  appropriately.  However, it may be easier to use the LOG /H command for this 
  6121.  purpose. 
  6122.  
  6123.  You can disable the history list or specify a minimum command-line length to 
  6124.  save with on the Command Line 1 page of the OPTION dialogs, or with the 
  6125.  HistMin directive in the .INI file. 
  6126.  
  6127.  You can save the history list by redirecting the output of HISTORY to a file. 
  6128.  This example saves the command history to a file called HISTFILE and reads it 
  6129.  back again immediately.  If you leave out the HISTORY /F command on the second 
  6130.  line, the contents of the file will be appended to the current history list 
  6131.  instead of replacing it: 
  6132.  
  6133.           [c:\] history > histfile
  6134.           [c:\] history /f
  6135.           [c:\] history /r histfile
  6136.  
  6137.  If you need to save your history at the end of each day's work, you might use 
  6138.  commands like this in your AUTOEXEC.BAT or other startup file: 
  6139.  
  6140.           if exist c:\histfile history /r c:\histfile
  6141.           alias shut*down `history > c:\histfile`
  6142.  
  6143.  This restores the previous history list if it exists, then defines an alias 
  6144.  which will allow you to save the history before shutting off the system. 
  6145.  
  6146.  Options 
  6147.  
  6148.     /A:     (Add) Add a command to the history list.  This performs the same 
  6149.             function as the Ctrl-K key at the command line (see Command History 
  6150.             and Recall). 
  6151.  
  6152.     /F:     (Free) Erase all entries in the command history list. 
  6153.  
  6154.     /P:     (Prompt) Wait for a key after displaying each page of the list. 
  6155.             Your options at the prompt are explained in detail under Page and 
  6156.             File Prompts. 
  6157.  
  6158.     /R:     (Read) Read the command history from the specified file and append 
  6159.             it to the history list currently held in memory.  Each line in the 
  6160.             file must fit within the command-line length limit). 
  6161.  
  6162.             If you are creating a HISTORY /R file by hand, and need to create 
  6163.             an entry that spans multiple lines in the file, you can do so by 
  6164.             terminating each line, except the last, with an escape character. 
  6165.             However, you cannot use this method to exceed the command-line 
  6166.             length limit. 
  6167.  
  6168.  
  6169. ΓòÉΓòÉΓòÉ 6.41. IF - Execute a command if a condition is true ΓòÉΓòÉΓòÉ
  6170.  
  6171.  Purpose:    Execute a command if a condition or set of conditions is true. 
  6172.  
  6173.  Format:     IF [NOT] condition [.AND. | .OR. | .XOR. [NOT] condition ...] 
  6174.              command 
  6175.  
  6176.              condition :  A test or set of tests to determine if the command 
  6177.              should be executed. 
  6178.              command :  The command to execute if the condition is true. 
  6179.  
  6180.  See also:  IFF, @IF. 
  6181.  
  6182.  Usage 
  6183.  
  6184.  IF is normally used only in aliases and batch files.  It is always followed by 
  6185.  one or more conditions and then a command.  First, the conditions are 
  6186.  evaluated.  If they are true, the command is executed.  Otherwise, the command 
  6187.  is ignored.  If you add a NOT before a condition, the command is executed only 
  6188.  when the condition is false. 
  6189.  
  6190.  You can link conditions with .AND., .OR., or .XOR., and you can group 
  6191.  conditions with parentheses (see Combining Tests below).  You can also nest IF 
  6192.  statements. 
  6193.  
  6194.  The conditions can test strings, numbers, the existence of a file or 
  6195.  subdirectory, the exit code returned by the preceding external command, and 
  6196.  the existence of aliases and internal commands. 
  6197.  
  6198.  The command can be an alias, an internal command, an external command, or a 
  6199.  batch file.  The entire IF statement, including all conditions and the 
  6200.  command, must fit on one line. 
  6201.  
  6202.  Some examples of IF conditions and commands are included below; additional 
  6203.  examples can be found in the EXAMPLES.BTM file which came with 4OS2. 
  6204.  
  6205.  You can use command grouping to execute multiple commands if the condition is 
  6206.  true.  For example, the following command tests if any .TXT files exist.  If 
  6207.  they do, they are copied to drive A: and their extensions are changed to .TXO 
  6208.  : 
  6209.  
  6210.           if exist *.txt (copy *.txt a: & ren *.txt *.txo)
  6211.  
  6212.  (Note that the IFF command provides a more structured method of executing 
  6213.  multiple commands if a condition or set of conditions is true.) 
  6214.  
  6215.  When an IF test fails, the remainder of the command is discarded, and the 
  6216.  command processor normally continues with the next command on the line, or the 
  6217.  next line.  This behavior is not compatible with CMD.EXE, which discards all 
  6218.  remaining commands on the line when an IF test fails, including those after a 
  6219.  command separator or pipe character.  To change the behavior so that IF 
  6220.  affects all commands on the line, as in CMD.EXE, set DuplicateBugs to Yes in 
  6221.  4OS2.INI. 
  6222.  
  6223.  For example, if DuplicateBugs is set to Yes (the default), the following 
  6224.  command will display nothing, because the second ECHO command is discarded 
  6225.  along with the first when the condition fails.  If DuplicateBugs is set to No, 
  6226.  it will display "hello": 
  6227.  
  6228.           [c:\] if 1 == 2 echo Wrong! & echo hello
  6229.  
  6230.  Conditions 
  6231.  
  6232.  The conditional tests listed in the following sections are available in both 
  6233.  the IF and IFF commands.  They fit into two categories:  string and numeric 
  6234.  tests, and status tests.  The tests can use environment variables, internal 
  6235.  variables and variable functions, file names, literal text, and numeric values 
  6236.  as their arguments. 
  6237.  
  6238.  String and Numeric Tests 
  6239.  
  6240.  Six test conditions can be used to test character strings.  The same 
  6241.  conditions are available for both numeric and normal text strings (see below 
  6242.  for details).  In each case you enter the test as: 
  6243.  
  6244.           string1 operator string2
  6245.  
  6246.  The operator defines the type of test (equal, greater than or equal, and so 
  6247.  on).  You should always use spaces on both sides of the operator  The 
  6248.  operators are: 
  6249.  
  6250.         EQ or ==    string1 equal to string2 
  6251.         NE or !=    string1 not equal to string2 
  6252.         LT          string1 less than string2 
  6253.         LE          string1 less than or equal to string2 
  6254.         GE          string1 greater than or equal to string2 
  6255.         GT          string1 greater than string2 
  6256.  
  6257.  When IF compares two character strings, it will use either a numeric 
  6258.  comparison or a string comparison.  A numeric comparison treats the strings as 
  6259.  numeric values and tests them arithmetically.  A string comparison treats the 
  6260.  strings as text. 
  6261.  
  6262.  The difference between numeric and string comparisons is best explained by 
  6263.  looking at the way two values are tested.  For example, consider comparing the 
  6264.  values 2 and 19.  Numerically, 2 is smaller, but as a string it is "larger" 
  6265.  because its first digit is larger than the first digit of 19.  So the first of 
  6266.  these conditions will be true, and the second will be false: 
  6267.  
  6268.           if 2 lt 19 ...
  6269.           if "2" lt "19" ...
  6270.  
  6271.  IF determines which kind of test to do by examining the first character of 
  6272.  each string.  If both strings begin with a numeric character (a digit, sign, 
  6273.  or decimal separator), a numeric comparison is used.  (If a string begins with 
  6274.  a decimal separator it is not considered numeric unless the next character is 
  6275.  a digit, and there are no more decimal separators within the string.  For 
  6276.  example, ".07" is numeric, but ".a" and ".07.01" are not.)  If either value is 
  6277.  non-numeric, a string comparison is used.  To force a string comparison when 
  6278.  both values are or may be numeric, use double quotes around the values you are 
  6279.  testing, as shown above.  Because the double quote is not a numeric character, 
  6280.  IF performs a string comparison. 
  6281.  
  6282.  Case differences are ignored in string comparisons.  If two strings begin with 
  6283.  the same text but one is shorter, the shorter string is considered to be "less 
  6284.  than" the longer one.  For example, "a" is less than "abc", and "hello_there" 
  6285.  is greater than "hello". 
  6286.  
  6287.  When you compare text strings, you should always enclose the arguments in 
  6288.  double quotes in order to avoid syntax errors which may occur if one of the 
  6289.  argument values is empty. 
  6290.  
  6291.  Numeric comparisons work with both integer and decimal values.  The values to 
  6292.  be compared must contain only numeric digits, decimal points, and an optional 
  6293.  sign (+ or -). The number may contain up to 16 digits to the left of the 
  6294.  decimal point, and 8 digits to the right. 
  6295.  
  6296.  Internal variables and variable functions are very powerful when combined with 
  6297.  string and numeric comparisons.  They allow you to test the state of your 
  6298.  system, the characteristics of a file, date and time information, or the 
  6299.  result of a calculation.  You may want to review the variables and variable 
  6300.  functions when determining the best way to set up an IF test. 
  6301.  
  6302.  This batch file fragment runs a program called MONOPROG if a monochrome 
  6303.  monitor is attached to the system: 
  6304.  
  6305.           if "%_monitor" == "mono" monoprog
  6306.  
  6307.  This batch file fragment tests for a string value: 
  6308.  
  6309.           input "Enter your selection : " %%cmd
  6310.           if "%cmd" == "WP" goto wordproc
  6311.           if "%cmd" NE "GRAPHICS" goto badentry
  6312.  
  6313.  This example calls GO.BTM if the first two characters in the file MYFILE are 
  6314.  "GO": 
  6315.  
  6316.           if "%@left[2,%@line[myfile,0]]" == "GO" call go.btm
  6317.  
  6318.  Status Tests 
  6319.  
  6320.  These conditions test the system or command processor status.  You can use 
  6321.  internal variables and variable functions to test many other parts of the 
  6322.  system status. 
  6323.  
  6324.     DEFINED variable
  6325.         If the variable exists in the environment, the condition is true.  This 
  6326.         is equivalent to testing whether the variable is not empty, for example 
  6327.         the following two commands are equivalent: 
  6328.  
  6329.                         if defined abc echo Hello
  6330.                         if "%abc" != "" echo Hello
  6331.  
  6332.     ERRORLEVEL [operator] n
  6333.         This test retrieves the exit code of the preceding external program. 
  6334.         By convention, programs return an exit code of 0 when they are 
  6335.         successful and a number between 1 and 255 to indicate an error 
  6336.         (depending on the program you are running, the maximum return value may 
  6337.         be larger).  The condition can be any of the operators listed above 
  6338.         (EQ, !=, GT, etc.).  If no operator is specified, the default is GE. 
  6339.         The comparison is done numerically. 
  6340.  
  6341.         Not all programs return an explicit exit code.  For programs which do 
  6342.         not, the behavior of ERRORLEVEL is undefined. 
  6343.  
  6344.     EXIST filename
  6345.         If the file exists, the condition is true.  You can use wildcards in 
  6346.         the filename, in which case the condition is true if any file matching 
  6347.         the wildcard name exists. 
  6348.  
  6349.         Do not use IF EXIST to test for existence of a directory (use IF ISDIR 
  6350.         instead).  Due to variations in operating system internals, IF EXIST 
  6351.         will not return consistent results when used to test for the existence 
  6352.         of a directory. 
  6353.  
  6354.     ISALIAS aliasname
  6355.         If the name is defined as an alias, the condition is true. 
  6356.  
  6357.     ISDIR | DIREXIST path
  6358.         If the subdirectory exists, the condition is true. 
  6359.  
  6360.     ISINTERNAL command
  6361.         If the specified command is an active internal command, the condition 
  6362.         is true.  Commands can be activated and deactivated with the SETDOS /I 
  6363.         command. 
  6364.  
  6365.     ISLABEL label
  6366.         If the specified label exists in the current batch file, the condition 
  6367.         is true.  Labels may be one or more words long. 
  6368.  
  6369.  This batch file fragment tests for the existence of A:\JAN.DOC before copying 
  6370.  it to drive C (this avoids an error message if the file does not exist): 
  6371.  
  6372.           if exist a:\jan.doc copy a:\jan.doc c:\
  6373.  
  6374.  This example tests the exit code of the previous program and stops all batch 
  6375.  file processing if an error occurred: 
  6376.  
  6377.           if errorlevel == 0 goto success
  6378.           echo "External Error -- Batch File Ends!"
  6379.           cancel
  6380.  
  6381.  Combining Tests 
  6382.  
  6383.  You can negate the result of any test with NOT, and combine tests of any type 
  6384.  with .AND., .OR., and .XOR. 
  6385.  
  6386.  When two tests are combined with .AND., the result is true if both individual 
  6387.  tests are true.  When two tests are combined with .OR., the result is true if 
  6388.  either (or both) individual tests are true.  When two tests are combined with 
  6389.  .XOR., the result is true only if one of the tests is true and the other is 
  6390.  false. 
  6391.  
  6392.  This example runs a program called HIGHRES if either an EGA or VGA video 
  6393.  adapter is in use.  Enter this on one line: 
  6394.  
  6395.           if "%_video" == "EGA" .or. "%_video" == "vga" highres
  6396.  
  6397.  Test conditions are always scanned from left to right  there is no implied 
  6398.  order of precedence, as there is in some programming languages.  You can, 
  6399.  however, force a specific order of testing by grouping conditions with 
  6400.  parentheses, for example (enter this on one line): 
  6401.  
  6402.           if (%a == 1 .or. (%b == 2 .and. %c == 3)) echo something
  6403.  
  6404.  Parentheses can only be used when the portion of the condition inside the 
  6405.  parentheses contains at least one ".and.", ".or.", or ".xor.".  Parentheses on 
  6406.  a simple condition which does not combine two or more tests will be taken as 
  6407.  part of the string to be tested, and will probably make the test fail.  For 
  6408.  example, the first of these IF tests would fail; the second would succeed: 
  6409.  
  6410.           if (a == a) ...
  6411.           if (a == a .and. b == b) ...
  6412.  
  6413.  
  6414. ΓòÉΓòÉΓòÉ 6.42. IFF - IF / THEN / ELSE conditional command execution ΓòÉΓòÉΓòÉ
  6415.  
  6416.  Purpose:    Perform IF / THEN / ELSE conditional execution of commands. 
  6417.  
  6418.  Format:     IFF [NOT] condition [.AND. | .OR. | .XOR. [NOT] condition  ...] 
  6419.              THEN & commands 
  6420.              [ELSEIFF condition  THEN & commands ] ... 
  6421.              [ELSE & commands ] 
  6422.              & ENDIFF 
  6423.  
  6424.              condition :  A test to determine if the command(s) should be 
  6425.              executed. 
  6426.              commands :  One or more commands to execute if the condition(s) is 
  6427.              true.  If you use multiple commands, they must be separated by 
  6428.              command separators or be placed on separate lines of a batch file. 
  6429.  
  6430.  See also:  IF and @IF. 
  6431.  
  6432.  Usage 
  6433.  
  6434.  IFF is similar to the IF command, except that it can perform one set of 
  6435.  commands when a condition or set of conditions is true and different commands 
  6436.  when the conditions are false. 
  6437.  
  6438.  IFF can also execute multiple commands when the conditions are true or false; 
  6439.  IF normally executes only one command.  IFF imposes no limit on the number of 
  6440.  commands and is generally a "cleaner" and more structured command than IF. 
  6441.  
  6442.  IFF is always followed by one or more conditions.  If they are true, the 
  6443.  commands that follow the word THEN are executed.  Additional conditions can be 
  6444.  tested with ELSEIFF.  If none of these conditions are true, the commands that 
  6445.  follow the word ELSE are executed.  After the selected commands (if any) are 
  6446.  executed, processing continues after the word ENDIFF. 
  6447.  
  6448.  If you add a NOT before the condition, the THEN commands are executed only 
  6449.  when the condition is false and the ELSE commands are executed only when the 
  6450.  condition is true. 
  6451.  
  6452.  The commands may be separated by command separators, or may be on separate 
  6453.  lines of a batch file.  You should include a command separator or a line break 
  6454.  after a THEN, before an ELSEIFF, and before and after an ELSE. 
  6455.  
  6456.  You can link conditions with .AND., .OR., or .XOR., and you can group 
  6457.  conditions with parentheses.  You can nest IFF statements up to 15 levels 
  6458.  deep.  The conditions can test strings or numbers, the existence of a file or 
  6459.  subdirectory, the errorlevel returned from the preceding external command, and 
  6460.  the existence of alias names and internal commands. 
  6461.  
  6462.  See the IF command for a list of the possible conditions, and details on 
  6463.  useing .AND., .OR., .XOR., and parentheses. 
  6464.  
  6465.  The commands can include any internal command, alias, external command, or 
  6466.  batch file. 
  6467.  
  6468.  The following batch file fragment tests the monitor type (monochrome or 
  6469.  color), and sets the appropriate colors and prompt (enter the "prompt" lines 
  6470.  on one line of the batch file): 
  6471.  
  6472.           iff "%_monitor" == "color" then
  6473.              color bright white on blue & cls
  6474.              prompt=$e[s$e[1;1f$e[41;1;37m$e[K  Path: $p$e[u$e[44;37m$n$g
  6475.           else
  6476.              prompt=$e[s$e[1;1f$e[0;7m$e[K  Path: $p$e[u$e[0m$n$g
  6477.           endiff
  6478.  
  6479.  The alias in this second example checks to see if the argument is a 
  6480.  subdirectory.  If so, the alias deletes the subdirectory's files and removes 
  6481.  it (enter this on one line): 
  6482.  
  6483.           [c:\] alias prune `iff isdir %1 then & del /sxz %1
  6484.                 & else & echo Not a directory! & endiff`
  6485.  
  6486.  Be sure to read the cautionary notes about GOTO and IFF under the GOTO command 
  6487.  before using a GOTO inside an IFF statement. 
  6488.  
  6489.  If you pipe data to an IFF, the data will be passed to the command(s) 
  6490.  following the IFF, not to IFF itself. 
  6491.  
  6492.  
  6493. ΓòÉΓòÉΓòÉ 6.43. INKEY - Get a character from the keyboard ΓòÉΓòÉΓòÉ
  6494.  
  6495.  Purpose:    Get a single keystroke from the user and store it in an 
  6496.              environment variable. 
  6497.  
  6498.  Format:     INKEY [/C /D /K"keys" /P /Wn /X] [prompt ] %%varname 
  6499.  
  6500.              prompt :  Optional text that is displayed as a prompt. 
  6501.              varname :  The variable that will hold the user's keystroke. 
  6502.  
  6503.              /C(lear buffer)                 /P(assword) 
  6504.              /D(igits only)                  /W(ait) 
  6505.              /K(valid keystrokes)            /X (no carriage return) 
  6506.  
  6507.  See also:  INPUT. 
  6508.  
  6509.  Usage 
  6510.  
  6511.  INKEY optionally displays a prompt.  Then it waits for a specified time or 
  6512.  indefinitely for a keystroke, and places the keystroke into an environment 
  6513.  variable.  It is normally used in batch files and aliases to get a menu choice 
  6514.  or other single-key input.  Along with the INPUT command, INKEY allows great 
  6515.  flexibility in reading input from within a batch file or alias. 
  6516.  
  6517.  If prompt text is included in an INKEY command, it is displayed while INKEY 
  6518.  waits for input. 
  6519.  
  6520.  The following batch file fragment prompts for a character and stores it in the 
  6521.  variable NUM: 
  6522.  
  6523.           inkey Enter a number from 1 to 9:  %%num
  6524.  
  6525.  INKEY reads standard input for the keystroke, so it will accept keystrokes 
  6526.  from a redirected file or from the KEYSTACK.  You can supply a list of valid 
  6527.  keystrokes with the /K option. 
  6528.  
  6529.  Standard keystrokes with ASCII values between 1 and 255 are stored directly in 
  6530.  the environment variable.  Extended keystrokes (for example, function keys and 
  6531.  cursor keys) are stored as a string in decimal format, with a leading @ (for 
  6532.  example, the F1 key is @59).  The Enter key is stored as an extended 
  6533.  keystroke, with the code @28.  See the Reference Tables for a list of the 
  6534.  ASCII and extended key codes. 
  6535.  
  6536.  To test for a non-printing ASCII keystroke returned by INKEY use the @ASCII 
  6537.  function to get the numeric value of the key.  For example, to test for Esc, 
  6538.  which has an ASCII value of 27: 
  6539.  
  6540.           inkey Enter a key:  %%key
  6541.           if "%@ascii[%key]" == "27" echo Esc pressed
  6542.  
  6543.  If you press Ctrl-C or Ctrl-Break while INKEY is waiting for a key, execution 
  6544.  of an alias will be terminated, and execution of a batch file will be 
  6545.  suspended while you are asked whether to cancel the batch job.  A batch file 
  6546.  can handle Ctrl-C and Ctrl-Break itself with the ON BREAK command. 
  6547.  
  6548.  Options 
  6549.  
  6550.     /C:     (Clear buffer) Clears the keyboard buffer before INKEY accepts 
  6551.             keystrokes.  If you use this option, INKEY will ignore any 
  6552.             keystrokes which you type, either accidentally or intentionally, 
  6553.             before it is ready to accept input. 
  6554.  
  6555.     /D:     (Digits only) Prevents INKEY from accepting any keystroke except a 
  6556.             digit from 0 to 9. 
  6557.  
  6558.     /K"keys":Specify the permissible keystrokes.  The list of valid keystrokes 
  6559.             should be enclosed in double quotes.  For alphabetic keys the 
  6560.             validity test is not case sensitive.  You can specify extended keys 
  6561.             by enclosing their names in square brackets (within the quotes), 
  6562.             for example: 
  6563.  
  6564.                                 inkey /k"ab[Alt-F10]" Enter A, B, Alt-F10 %%var
  6565.  
  6566.             See Keys and Key Names for a complete listing of the key names you 
  6567.             can use within the square brackets, and a description of the key 
  6568.             name format. 
  6569.  
  6570.             If an invalid keystroke is entered, 4OS2 will echo the keystroke if 
  6571.             possible, beep, move the cursor back one character, and wait for 
  6572.             another keystroke. 
  6573.  
  6574.     /P:     (Password) Prevents INKEY from echoing the character. 
  6575.  
  6576.     /W:     (Wait) Timeout period, in seconds, to wait for a response. If no 
  6577.             keystroke is entered by the end of the timeout period, INKEY 
  6578.             returns with the variable unchanged.  This allows you to continue 
  6579.             the batch file if the user does not respond in a given period of 
  6580.             time.  You can specify /W0 to return immediately if there are no 
  6581.             keys waiting in the keyboard buffer. 
  6582.  
  6583.             For example, the following batch file fragment waits up to 10 
  6584.             seconds for a character, then tests to see if a "Y" was entered: 
  6585.  
  6586.                                 set net=N
  6587.                                 inkey /K"YN" /w10 Load network (Y/N)?  %%net
  6588.                                 iff "%net" == "Y" then
  6589.                                 rem Commands to load the network go here
  6590.                                 endiff
  6591.  
  6592.     /X:     (No carriage return) Prevents INKEY from displaying a carriage 
  6593.             return and line feed after the user's entry. 
  6594.  
  6595.  
  6596. ΓòÉΓòÉΓòÉ 6.44. INPUT - Get a string from the keyboard ΓòÉΓòÉΓòÉ
  6597.  
  6598.  Purpose:    Get a string from the keyboard and save it in an environment 
  6599.              variable. 
  6600.  
  6601.  Format:     INPUT [/C /D /E /Ln /N /P /Wn /X] [prompt ] %%varname 
  6602.  
  6603.              prompt :  Optional text that is displayed as a prompt. 
  6604.              varname :  The variable that will hold the user's input. 
  6605.  
  6606.              /C(lear buffer)                 /N(o colors) 
  6607.              /D(igits only)                  /P(assword) 
  6608.              /E(dit)                         /W(ait) 
  6609.              /L(ength)                       /X (no carriage return) 
  6610.  
  6611.  See also:  INKEY. 
  6612.  
  6613.  Usage 
  6614.  
  6615.  INPUT optionally displays a prompt.  Then it waits for a specified time or 
  6616.  indefinitely for your entry.  It places any characters you type into an 
  6617.  environment variable.  INPUT is normally used in batch files and aliases to 
  6618.  get multi-key input.  Along with the INKEY command, INPUT allows great 
  6619.  flexibility in reading user input from within a batch file or alias. 
  6620.  
  6621.  If prompt text is included in an INPUT command, it is displayed while INPUT 
  6622.  waits for input.  Standard command-line editing keys may be used to edit the 
  6623.  input string as it is entered.  If you use the /P password option, INPUT will 
  6624.  echo asterisks instead of the keys you type. 
  6625.  
  6626.  All characters entered up to, but not including, the carriage return are 
  6627.  stored in the variable. 
  6628.  
  6629.  The following batch file fragment prompts for a string and stores it in the 
  6630.  variable FNAME: 
  6631.  
  6632.           input Enter the file name:  %%fname
  6633.  
  6634.  INPUT reads standard input, so it will accept text from a redirected file. 
  6635.  
  6636.  If you press Ctrl-C or Ctrl-Break while INPUT is waiting for input, execution 
  6637.  of an alias will be terminated, and execution of a batch file will be 
  6638.  suspended while you are asked whether to cancel the batch job.  A batch file 
  6639.  can handle Ctrl-C and Ctrl-Break itself with the ON BREAK command. 
  6640.  
  6641.  You should not pipe text to INPUT.  If you do, INPUT will set the variable to 
  6642.  the first line it receives, but it will set the variable in the "child" 
  6643.  process used to handle the right hand side fo the pipe.  This variable will 
  6644.  not be available in the original copy of 4OS2 used to start the pipe. 
  6645.  
  6646.  Options 
  6647.  
  6648.     /C:     (Clear buffer) Clears the keyboard buffer before INPUT accepts 
  6649.             keystrokes.  If you use this option, INPUT will ignore any 
  6650.             keystrokes which you type, either accidentally or intentionally, 
  6651.             before INPUT is ready. 
  6652.  
  6653.     /D:     (Digits only) Prevents INKEY from accepting any keystroke except a 
  6654.             digit from 0 to 9. 
  6655.  
  6656.     /E:     (Edit) Allows you to edit an existing value.  If there is no 
  6657.             existing value for varname, INPUT proceeds as if /E had not been 
  6658.             used, and allows you to enter a new value. 
  6659.  
  6660.     /Ln:    (Length) Sets the maximum number of characters which INPUT will 
  6661.             accept to n.  If you attempt to enter more than this number of 
  6662.             characters, INPUT will beep and prevent further input (you will 
  6663.             still be able to edit the characters typed before the limit was 
  6664.             reached). 
  6665.  
  6666.     /N:     (No colors) Disables the use of input colors defined in the 
  6667.             InputColors directive in 4OS2.INI, and forces INPUT to use the 
  6668.             default display colors. 
  6669.  
  6670.     /P:     (Password) Tells INPUT to echo asterisks, instead of the characters 
  6671.             you type. 
  6672.  
  6673.     /Wn:    (Wait) Timeout period, in seconds, to wait for a response.  If no 
  6674.             keystroke is entered by the end of the timeout period, INPUT 
  6675.             returns with the variable unchanged.  This allows you to continue 
  6676.             the batch file if the user does not respond in a given period of 
  6677.             time.  If you enter a key before the timeout period, INPUT will 
  6678.             wait indefinitely for the remainder of the line.  You can specify 
  6679.             /W0 to return immediately if there are no keys waiting in the 
  6680.             keyboard buffer. 
  6681.  
  6682.     /X:     (No carriage return) Prevents INPUT from displaying a carriage 
  6683.             return and line feed after the user's entry. 
  6684.  
  6685.  
  6686. ΓòÉΓòÉΓòÉ 6.45. KEYBD - Set the keyboard toggles ΓòÉΓòÉΓòÉ
  6687.  
  6688.  Purpose:    Set the state of the keyboard toggles:  Caps Lock, Num Lock, and 
  6689.              Scroll Lock. 
  6690.  
  6691.  Format:     KEYBD [/Cn /Nn /Sn ] 
  6692.  
  6693.              n :  0 to turn off the toggle, or 1 to turn on the toggle. 
  6694.  
  6695.              /C(aps lock)                    /S(croll lock) 
  6696.              /N(um lock) 
  6697.  
  6698.  Usage 
  6699.  
  6700.  Most keyboards have 3 toggle keys, the Caps Lock, Num Lock, and Scroll Lock. 
  6701.  The toggle key status is usually displayed by three lights at the top right 
  6702.  corner of the keyboard. 
  6703.  
  6704.  This command lets you turn any toggle key on or off.  It is most useful in 
  6705.  batch files and aliases if you want the keys set a particular way before 
  6706.  collecting input from the user. 
  6707.  
  6708.  For example, to turn off the Num Lock and Caps Lock keys, you can use this 
  6709.  command: 
  6710.  
  6711.           [c:\] keybd /c0 /n0
  6712.  
  6713.  If you use the KEYBD command with no switches, it will display the present 
  6714.  state of the toggle keys. 
  6715.  
  6716.  The toggle key state is typically the same for all sessions, and changes made 
  6717.  with KEYBD in one session will therefore affect all other sessions. 
  6718.  
  6719.  Options 
  6720.  
  6721.     /C:     (Caps lock) Turn the Caps Lock key on or off. 
  6722.  
  6723.     /N:     (Num lock) Turn the Num Lock key on or off. 
  6724.  
  6725.     /S:     (Scroll lock) Turn the Scroll Lock key on or off. 
  6726.  
  6727.  
  6728. ΓòÉΓòÉΓòÉ 6.46. KEYS - Enable or disable the history list ΓòÉΓòÉΓòÉ
  6729.  
  6730.  Purpose:    Enable, disable, or display the history list. 
  6731.  
  6732.  Format:     KEYS [ON | OFF | LIST] 
  6733.  
  6734.  See also:  HISTORY. 
  6735.  
  6736.  Usage 
  6737.  
  6738.  This command is provided for compatibility with the KEYS command in CMD.EXE, 
  6739.  which controls the history list in OS/2.  The same functions are available by 
  6740.  setting the HistMin directive in the .INI file, and by using the HISTORY 
  6741.  command. 
  6742.  
  6743.  The history list collects the commands you type for later recall, editing, and 
  6744.  viewing.  You can view the contents of the list through the history list 
  6745.  window or by typing any of the following commands: 
  6746.  
  6747.           [c:\] history
  6748.           [c:\] history /p
  6749.           [c:\] keys list
  6750.  
  6751.  The first command displays the entire history list.  The second displays the 
  6752.  entire list and pauses at the end of each full screen.  The third command 
  6753.  produces the same output as the first, except that each line is numbered. 
  6754.  
  6755.  You can disable the collection and storage of commands in the history list by 
  6756.  typing: 
  6757.  
  6758.           [c:\] keys off
  6759.  
  6760.  You can turn the history back on with the command: 
  6761.  
  6762.           [c:\] keys on
  6763.  
  6764.  If you issue the KEYS command without any parameters, 4OS2 will show you the 
  6765.  current status of the history list. 
  6766.  
  6767.  KEYS also affects the way 4OS2 reads input from the keyboard.  KEYS OFF will 
  6768.  force 4OS2 into line input mode; KEYS ON will return input to the usual 
  6769.  character by character method.  See the LineInput directive, or the /L option 
  6770.  of the SETDOS command, for details on line input mode. 
  6771.  
  6772.  
  6773. ΓòÉΓòÉΓòÉ 6.47. KEYSTACK - Feed keystrokes to a program or command ΓòÉΓòÉΓòÉ
  6774.  
  6775.  Purpose:    Feed keystrokes to a program or command automatically. 
  6776.  
  6777.  Format:     KEYSTACK [!] [/Wn] ["abc "] [keyname [n]] ... 
  6778.  
  6779.              ! :  Signal to clear the Keystack and the keyboard buffer. 
  6780.              abc :  Literal characters to be placed in the Keystack. 
  6781.              keyname :  Name or code for a key to be placed in the Keystack. 
  6782.              n :  Number of times to repeat the named key. 
  6783.  
  6784.              /W(ait) 
  6785.  
  6786.  See also:  Using the Keystack. 
  6787.  
  6788.  Usage 
  6789.  
  6790.  KEYSTACK takes a series of keystrokes and feeds them to a program or command 
  6791.  as if they were typed at the keyboard.  When the program has used all of the 
  6792.  keystrokes in the keystack buffer, it will begin to read the keyboard for 
  6793.  input, as it normally would. 
  6794.  
  6795.  KEYSTACK sends the keystrokes to the current active window.  If you want to 
  6796.  send keystrokes to another program (rather than have them function with 4OS2 
  6797.  itself), you must start the program or ACTIVATE its window so it can receive 
  6798.  the keystrokes.  The KEYSTACK command must be executed after you start or 
  6799.  ACTIVATE the program which is to receive the keystrokes. 
  6800.  
  6801.  KEYSTACK is most often used for programs started from batch files.  In order 
  6802.  for 4OS2's KEYSTACK to work in a batch file, you must start the program with 
  6803.  the START command, then use the KEYSTACK command.  If you start the program 
  6804.  directly - without using START - the batch file will wait for the application 
  6805.  to complete before continuing and running the KEYSTACK command, and the 
  6806.  keystrokes will be placed in the buffer too late. 
  6807.  
  6808.  If you use KEYSTACK in an alias executed from the prompt, the considerations 
  6809.  are essentially the same, but depend on whether ExecWait is set.  If ExecWait 
  6810.  is not set, you can use KEYSTACK immediately after an application is started. 
  6811.  However, if ExecWait is set, the KEYSTACK command will not be executed until 
  6812.  the program has finished, and the keystrokes will be placed in the buffer too 
  6813.  late. 
  6814.  
  6815.  You may not be able to use KEYSTACK effectively if you have programs running 
  6816.  in the background which change the active window (for example, by popping up a 
  6817.  dialog box).  If a window pops up in the midst of your KEYSTACK sequence, 
  6818.  keystrokes stored in the KEYSTACK buffer may go to that window, and not to the 
  6819.  application you intended. 
  6820.  
  6821.  KEYSTACK will only work if the program KEYSTACK.EXE is in the same directory 
  6822.  4OS2.EXE, or a directory listed in your PATH.  If KEYSTACK.EXE cannot be 
  6823.  found, the KEYSTACK command will display an error message.  KEYSTACK can send 
  6824.  keystrokes to Presentation Manager applications and to OS/2 character-mode 
  6825.  applications running in a window.  It cannot send keystrokes to DOS 
  6826.  applications, or to character-mode applications running in a full-screen 
  6827.  session. 
  6828.  
  6829.  Characters entered within double quotes ("abc") will be sent "as is" to the 
  6830.  application.  The only items allowed outside double quotes are key names, the 
  6831.  ! and /W options, and a repeat count. 
  6832.  
  6833.  See Keys and Key Names for a complete listing of key names and a description 
  6834.  of the key name and numeric key code format.  If you want to send the same key 
  6835.  name or numeric code several times, you can follow it with a repeat count in 
  6836.  square brackets.  For example, to send the Enter key 4 times, you can use this 
  6837.  command: 
  6838.  
  6839.           keystack enter [4]
  6840.  
  6841.  The repeat count works only with individual keystrokes, or numeric keystroke 
  6842.  or character values.  It cannot be used with quoted strings. 
  6843.  
  6844.  An exclamation mark [!] will clear all pending keystrokes in the KEYSTACK 
  6845.  buffer. 
  6846.  
  6847.  For example, to start a program that needs a single space to skip its opening 
  6848.  screen you could use the command: 
  6849.  
  6850.           [c:\comm] keystack 32 & progname
  6851.  
  6852.  This places a space ( ASCII code 32) in the buffer, then runs the program. 
  6853.  When the program looks for a keystroke to end the display of the opening 
  6854.  screen the keystroke is already in the buffer, and the opening screen is 
  6855.  removed immediately. 
  6856.  
  6857.  You can store a maximum of 1023 characters in the 4OS2 KEYSTACK buffer.  The 
  6858.  count is determined by the number of characters on the KEYSTACK command line, 
  6859.  not by the actual number of characters sent to the application. 
  6860.  
  6861.  Each time the KEYSTACK command is executed, it will clear any remaining 
  6862.  keystrokes stored by a previous KEYSTACK command. 
  6863.  
  6864.  You may need to experiment with your programs and insert delays (see the /W 
  6865.  option) to find a keystroke sequence that works for a particular program. 
  6866.  
  6867.  Advanced Options 
  6868.  
  6869.  KEYSTACK treats the number 0 as a special case; it is used with programs that 
  6870.  flush the keyboard buffer.  When KEYSTACK processes a key value of 0, it tells 
  6871.  the program the buffer is clear, so subsequent keystrokes will be accepted 
  6872.  normally.  Some programs will require several "0"s before they will accept 
  6873.  input; you may need to experiment to determine the correct number. 
  6874.  
  6875.  For example, the following batch file starts a spreadsheet programand loads 
  6876.  the file specified on the command line when the batch file is invoked (the 
  6877.  KEYSTACK command should be entered on one line): 
  6878.  
  6879.           pushd c:\finance
  6880.           keystack 0 Enter 0 Enter 0 Enter 0 Enter 0
  6881.             Enter "/FR" 0 "%1" Enter
  6882.           spread
  6883.           popd
  6884.  
  6885.  The sequence of "0 Enter" pairs tells the program that the keyboard buffer is 
  6886.  empty, then passes a carriage return, repeating this sequence five times. 
  6887.  (You must determine the actual sequence required by your software through 
  6888.  experimentation.  Few programs require as long a startup sequence as is shown 
  6889.  here.)  This gets the program to a point where an empty spreadsheet is 
  6890.  displayed.  The rest of the KEYSTACK line issues a File Retrieve command 
  6891.  (/FR), simulates an empty keyboard buffer once more, enters the file name 
  6892.  passed on the batch command line (%1), and finally enters a carriage return to 
  6893.  end the file name. 
  6894.  
  6895.  Here's the same command defined as an alias (enter this on one line): 
  6896.  
  6897.           alias sload `pushd c:\finance & keystack 0 Enter 0 Enter 0
  6898.             Enter 0 Enter 0 Enter "/FR" 0 "%1" Enter & spread & popd`
  6899.  
  6900.  KEYSTACK mimics the BIOS by stacking both an ASCII code and a scan code for 
  6901.  each key.  It does so by calculating the code for each character, whether it 
  6902.  is entered as part of a quoted string, as a key name, or as an ASCII value 
  6903.  less than 128.  However, if you are stacking keys for a program which 
  6904.  distinguishes between keys with the same symbol, like the plus on the keyboard 
  6905.  and the gray plus, you will have to calculate the codes for the keys on the 
  6906.  numeric keypad yourself.  Calculate the value ((256 * scan code) + ASCII code) 
  6907.  and enter that numeric value as an argument for KEYSTACK. 
  6908.  
  6909.  For example, for the Enter key on the numeric keypad, the scan code is 224 and 
  6910.  the ASCII code is 13, so to stack both values use ((256 * 224) + 13) or 
  6911.  KEYSTACK 57357.  Try this approach if a "normal" KEYSTACK command does not 
  6912.  work (for example, if you use "KEYSTACK Enter" for the Enter key and the 
  6913.  program doesn't see the correct character).  To stack such combined key codes 
  6914.  you must use the numeric value, not the key name.  See Reference Tables for 
  6915.  ASCII and scan codes. 
  6916.  
  6917.  Options 
  6918.  
  6919.     /W:     (Wait) Delay the next keystroke in the KEYSTACK buffer by a 
  6920.             specified number of clock "ticks".  A clock tick is approximately 
  6921.             1/18 second.  The number of clock ticks to delay should be placed 
  6922.             immediately after the W, and must be between 1 and 65535 (65535 
  6923.             ticks is about 1 hour).  You can use the /W option as many times as 
  6924.             desired and at any point in the string of keystrokes except within 
  6925.             double quotes.  Some programs may need the delays provided by /W in 
  6926.             order to receive keystrokes properly from KEYSTACK.  The only way 
  6927.             to determine what delay is needed is to experiment.  Sometimes a 
  6928.             combination of a delay and an "empty buffer" signal (a 0) are 
  6929.             required.  For example, to start the program CADX and send it an 
  6930.             F7, a delay of one second, an indication that the keyboard buffer 
  6931.             is empty, and a carriage return: 
  6932.  
  6933.                                 [c:\] keystack F7 /W18 0 Enter & cadx
  6934.  
  6935.  
  6936. ΓòÉΓòÉΓòÉ 6.48. LIST - Display a file ΓòÉΓòÉΓòÉ
  6937.  
  6938.  Purpose:    Display a file, with forward and backward paging and scrolling. 
  6939.  
  6940.  Format:     LIST [/A:[[-]rhsda] /H /I /R /S /T /W /X] file ... 
  6941.  
  6942.              file :  A file or list of files to display. 
  6943.  
  6944.              /A: (Attribute select)          /S(tandard input) 
  6945.              /H(igh bit off)                 /T (search for Text) 
  6946.              /I(gnore wildcards)             /W(rap) 
  6947.              /R(everse)                      /X (heX display mode) 
  6948.  
  6949.  See also:  TYPE. 
  6950.  
  6951.  File Selection 
  6952.  
  6953.  Supports extended wildcards, ranges, multiple file names, and include lists. 
  6954.  
  6955.  Usage 
  6956.  
  6957.  LIST provides a fast and flexible way to view a file, without the overhead of 
  6958.  loading and using a text editor. 
  6959.  
  6960.  For example, to display a file called MEMO.DOC: 
  6961.  
  6962.           [c:\] list memo.doc
  6963.  
  6964.  LIST is most often used for displaying ASCII text files.  It can be used for 
  6965.  other files which contain non-alphabetic characters, but you may need to use 
  6966.  hex mode (see below) to read these files. 
  6967.  
  6968.  LIST uses the cursor pad to scroll through the file.  The following keys have 
  6969.  special meanings: 
  6970.  
  6971.         Home           Display the first page of the file. 
  6972.         End            Display the last page of the file. 
  6973.         Esc            Exit the current file. 
  6974.         Ctrl-PgUp      Display previous file. 
  6975.         Ctrl-PgDn      Display next file. 
  6976.         Ctrl-C         Quit LIST. 
  6977.         PgUp           Scroll up one page. 
  6978.         PgDn or Space  Scroll down one page. 
  6979.                       Scroll up one line. 
  6980.                       Scroll down one line. 
  6981.                       Scroll left 8 columns. 
  6982.                       Scroll right 8 columns. 
  6983.         Ctrl          Scroll left 40 columns. 
  6984.         Ctrl          Scroll right 40 columns. 
  6985.         F1             Display online help 
  6986.         B              Go back one file to the previous file in the current 
  6987.                        group of files. 
  6988.         Ctrl-F         Prompt and search for a string, searching backward from 
  6989.                        the end of the file. 
  6990.         F              Prompt and search for a string. 
  6991.         G              Go to a specific line, or, in hex mode, to a specific 
  6992.                        hexadecimal offset. 
  6993.         H              Toggle the "strip high bit" (/H) option. 
  6994.         I              Display information on the current file (the full name, 
  6995.                        size, date, and time). 
  6996.         N              Find next matching string. 
  6997.         Ctrl-N         Find previous match in the file. 
  6998.         P              Print the current page or the entire file. 
  6999.         W              Toggle the "line wrap" (/W) option. 
  7000.         X              Toggle the hex-mode display (/X) option. 
  7001.  
  7002.  Text searches performed with F, N, Ctrl-F, and Ctrl-N are not case-sensitive. 
  7003.  However, if the display is currently in hexadecimal mode and you press F or 
  7004.  Ctrl-F, you will be prompted for whether you want to search in hexadecimal 
  7005.  mode.  If you answer Y, you should then enter the search string as a sequence 
  7006.  of 2-digit hexadecimal numbers separated by spaces, for example 41 63 65 
  7007.  (these are the ASCII values for the string "Ace"; see ASCII for a complete 
  7008.  list of ASCII codes).  Hexadecimal searches are case-sensitive, and search for 
  7009.  exactly the string you enter. 
  7010.  
  7011.  When the search string is found LIST displays the line containing the string 
  7012.  at the top of the screen, and highlights the string it found.  Any additional 
  7013.  occurrences of the string on the same display page are also highlighted. 
  7014.  Highlighting is intended for use with text files; in binary files the search 
  7015.  string will be found, but may not be highlighted properly. 
  7016.  
  7017.  You can use wildcards in the search string.  For example, you can search for 
  7018.  the string "to*day" to find the next line which contains the word "to" 
  7019.  followed by the word "day" later on the same line, or search for the numbers 
  7020.  "101" or "401" with the search string "[14]01".  If you begin the search 
  7021.  string with a back-quote [`], or enclose it in back-quotes, wildcard 
  7022.  characters in the string will be treated as normal text with no special 
  7023.  wildcard meaning. 
  7024.  
  7025.  LIST saves the search string used by F, N, Ctrl-F, and Ctrl-N so you can LIST 
  7026.  multiple files and search for the same string simply by pressing N in each 
  7027.  file, or repeat your search the next time you use LIST. 
  7028.  
  7029.  You can use the /T switch to specify search text for the first file.  When you 
  7030.  do so, LIST begins a search as soon as the file is loaded.  Use /I to ignore 
  7031.  wildcards in the initial search string, and /R to make the initial search go 
  7032.  backwards from the end of the file.  When you LIST multiple files with a 
  7033.  single LIST command, these switches affect only the first file; they are 
  7034.  ignored for the second and subsequent files. 
  7035.  
  7036.  You can use the G key to go to a specific line number in the file (or to a 
  7037.  specified hexadecimal offset in hex mode).  LIST numbers lines beginning with 
  7038.  1, unless ListRowStart is set to 0.  A new line is counted for every CR or LF 
  7039.  character (LIST determines automatically which character is used for line 
  7040.  breaks in each file), or when line length reaches 511 characters, whichever 
  7041.  comes first. 
  7042.  
  7043.  LIST normally allows long lines in the file to extend past the right edge of 
  7044.  the screen.  You can use the horizontal scrolling keys (see above) to view 
  7045.  text that extends beyond the screen width.  If you use the W command or /W 
  7046.  switch to wrap the display, each line is wrapped when it reaches the right 
  7047.  edge of the screen, and the horizontal scrolling keys are disabled. 
  7048.  
  7049.  To view text from the clipboard, use CLIP: as the file to be listed.  CLIP: 
  7050.  will not return any data unless the clipboard contains text.  See Redirection 
  7051.  for additional information on CLIP:. 
  7052.  
  7053.  If you print the file which LIST is displaying, the print format will match 
  7054.  the display format.  If you have switched to hexadecimal or wrapped mode, that 
  7055.  mode will be used for the printed output as well.  If you print in wrapped 
  7056.  mode, long lines will be wrapped at the width of the display.  If you print in 
  7057.  normal display mode without line wrap, long lines will be wrapped or truncated 
  7058.  by the printer, not by LIST. 
  7059.  
  7060.  Printed output normally goes to device LPT1.  If you wish to send the printed 
  7061.  output to another device, use the Commands page of the OPTION dialogs, or the 
  7062.  Printer directive in 4OS2.INI. 
  7063.  
  7064.  If you specify a directory name instead of a filename as an argument, LIST 
  7065.  will display each of the files in that directory. 
  7066.  
  7067.  Most of the LIST keystrokes can be reassigned with .INI file key mapping 
  7068.  directives. 
  7069.  
  7070.  You can set the colors used by LIST on the Commands page of the OPTION 
  7071.  dialogs, or the ListColors and ListStatBarColors directives in the .INI file. 
  7072.  If ListColors is not used, the LIST display will use the current default 
  7073.  colors.  If ListStatBarColors is not used, the status bar will use the reverse 
  7074.  of the LIST display colors. 
  7075.  
  7076.  By default, LIST sets tab stops every 8 columns.  You can change this behavior 
  7077.  on the Display page of the OPTION dialogs, or with the TabStops .INI file 
  7078.  directive. 
  7079.  
  7080.  Options 
  7081.  
  7082.     /A:     (Attribute select) Select only those files that have the specified 
  7083.             attribute(s) set.  Preceding the attribute character with a hyphen 
  7084.             [-] will select files that do not have that attribute set.  The 
  7085.             colon [:] after /A is required.  The attributes are: 
  7086.  
  7087.                            R  Read-only 
  7088.                            H  Hidden 
  7089.                            S  System 
  7090.                            D  Subdirectory 
  7091.                            A  Archive 
  7092.  
  7093.             If no attributes are listed at all (e.g., LIST /A: ...), LIST will 
  7094.             select all files and subdirectories including hidden and system 
  7095.             files.  If attributes are combined, all the specified attributes 
  7096.             must match for a file to be selected. For example, /A:RHS will 
  7097.             select only those files with all three attributes set. 
  7098.  
  7099.     /H:     (High bit off) Strip the high bit from each character before 
  7100.             displaying.  This is useful when displaying files created by some 
  7101.             word processors that turn on the high bit for formatting purposes. 
  7102.             You can toggle this option on and off from within LIST with the H 
  7103.             key. 
  7104.  
  7105.     /I:     (Ignore wildcards) Only meaningful when used in conjunction with 
  7106.             the /T "text" option.  Directs LIST to interpret characters such as 
  7107.             *, ?, [, and ] as literal characters instead of wildcard 
  7108.             characters.  /I affects only the initial search started by /T, not 
  7109.             subsequent searches started from within LIST. 
  7110.  
  7111.     /R:     (Reverse) Only meaningful when used in conjuction with the /T 
  7112.             "text" option.  Directs LIST to search for text from the end of the 
  7113.             file instead of from the beginning of the file.  Using this switch 
  7114.             can speed up searches for text that is normally near the end of the 
  7115.             file, such as a signature.  /R affects only the initial search 
  7116.             started by /T, not subsequent searches started from within LIST. 
  7117.  
  7118.     /S:     (Standard input) Read from standard input rather than a file.  This 
  7119.             allows you to redirect command output and view it with LIST. 
  7120.             Normally, LIST will detect input from a redirected command and 
  7121.             adjust automatically.  However, you may find circumstances when /S 
  7122.             is required.  For example, to use LIST to display the output of DIR 
  7123.             you could use either of these commands: 
  7124.  
  7125.                                 [c:\] dir | list
  7126.                                 [c:\] dir | list /s
  7127.  
  7128.  
  7129.     /T:     (Text) Search for text in the first file.  This option is the same 
  7130.             as pressing F, but it allows you to specify the search text on the 
  7131.             command line.  The text must be contained in quotation marks if it 
  7132.             contains spaces, punctuation, or wildcard characters.  For example, 
  7133.             to search for the string 4OS2 in the file README.DOC, you can use 
  7134.             this command: 
  7135.  
  7136.                                 [c:\] list /t4os2 readme.doc
  7137.  
  7138.             The search text may include wildcards and extended wildcards.  For 
  7139.             example, to search for the words Hello and John on the same line in 
  7140.             the file LETTER.DAT: 
  7141.  
  7142.                                 [c:\] list /t"Hello*John" letter.dat
  7143.  
  7144.             When you LIST multiple files with a single LIST command, /T only 
  7145.             initiates a search in the first file.  It is ignored for the second 
  7146.             and subsequent files.  Also see /I and /R. 
  7147.  
  7148.     /W:     (Wrap) Wrap the text at the right edge of the screen.  This option 
  7149.             is useful when displaying files that don't have a carriage return 
  7150.             at the end of each line.  The horizontal scrolling keys do not work 
  7151.             when the display is wrapped.  You can toggle this option on and off 
  7152.             from within LIST with the W key. 
  7153.  
  7154.     /X      (heX mode):  Display the file in hexadecimal (hex) mode. This 
  7155.             option is useful when displaying executable files and other files 
  7156.             that contain non-text characters.  Each byte of the file is shown 
  7157.             as a pair of hex characters.  The corresponding text is displayed 
  7158.             to the right of each line of hexadecimal data.  You can toggle this 
  7159.             mode on and off from within LIST with the X key. 
  7160.  
  7161.  
  7162. ΓòÉΓòÉΓòÉ 6.49. LOADBTM - Switch a batch file's mode ΓòÉΓòÉΓòÉ
  7163.  
  7164.  Purpose:    Switch a batch file to or from BTM mode. 
  7165.  
  7166.  Format:     LOADBTM [ON | OFF] 
  7167.  
  7168.  Usage 
  7169.  
  7170.  4OS2 recognizes two kinds of batch files: .BAT or .CMD, and .BTM.  Batch files 
  7171.  executing in BTM mode run two to ten times faster than in BAT or CMD mode. 
  7172.  Batch files automatically start in the mode indicated by their extension. 
  7173.  
  7174.  The LOADBTM command turns BTM mode on and off.  It can be used to switch modes 
  7175.  in either a .BAT / .CMD, or .BTM file.  If you use LOADBTM with no argument, 
  7176.  it will display the current batch mode:  LOADBTM ON or LOADBTM OFF. 
  7177.  
  7178.  Using LOADBTM to repeatedly switch modes within a batch file is not efficient. 
  7179.  In most cases the speed gained by running some parts of the file in BTM mode 
  7180.  will be more than offset by the speed lost through repeated loading of the 
  7181.  file each time BTM mode is invoked. 
  7182.  
  7183.  LOADBTM can only be used within a batch file.  It is most often used to 
  7184.  convert a .BAT or .CMD file to BTM mode without changing its extension. 
  7185.  
  7186.  
  7187. ΓòÉΓòÉΓòÉ 6.50. LOG - Save a log of commands ΓòÉΓòÉΓòÉ
  7188.  
  7189.  Purpose:    Save a log of commands to a disk file. 
  7190.  
  7191.  Format:     LOG [/H /W file ] [ON | OFF | text ] 
  7192.  
  7193.              file :  The name of the file to hold the log. 
  7194.              text :  An optional message that will be added to the log. 
  7195.  
  7196.              /H(istory log)                  /W(rite to). 
  7197.  
  7198.  See also:  HISTORY. 
  7199.  
  7200.  Usage 
  7201.  
  7202.  LOG keeps a record of all internal and external commands you use, whether they 
  7203.  are executed from the prompt or from a batch file.  Each entry includes the 
  7204.  current system date and time, along with the actual command after any alias or 
  7205.  variable expansion.  You can use the log file as a record of your daily 
  7206.  activities. 
  7207.  
  7208.  LOG with the /H option keeps a similar record called a "history log".  The 
  7209.  history log records only commands entered at the prompt; it does not record 
  7210.  batch file commands.  In addition, the history log does not record the date 
  7211.  and time for each command, and it records commands before aliases and 
  7212.  variables are expanded. 
  7213.  
  7214.  The two logging options are independent.  You can have both a regular log and 
  7215.  a history log enabled simultaneously. 
  7216.  
  7217.  By default, LOG writes to the file 4OS2LOG in the root directory of the boot 
  7218.  drive.  The default file name for the history log is 4OS2HLOG.  You can set 
  7219.  the default log file names on the Options 2 page of the OPTION dialogs, or 
  7220.  with the LogName and HistLogName directives in 4OS2.INI. 
  7221.  
  7222.  Entering LOG or LOG /H with no parameters displays the name of the log file 
  7223.  and the log status (ON or OFF): 
  7224.  
  7225.           [c:\] log
  7226.           LOG (C:\4OS2LOG) is OFF
  7227.  
  7228.  To enable or disable logging, add the word "ON" or "OFF" after the LOG 
  7229.  command: 
  7230.  
  7231.           [c:\] log on
  7232.  
  7233.  or 
  7234.  
  7235.           [c:\] log /h on
  7236.  
  7237.  Entering LOG or LOG /H with text writes a message to the log file, even if 
  7238.  logging is set OFF.  This allows you to enter headers in the log file: 
  7239.  
  7240.           [c:\] log "Started work on the database system"
  7241.  
  7242.  The LOG file format looks like this: 
  7243.  
  7244.           [date  time]  command
  7245.  
  7246.  where the date and time are formatted according to the country code set for 
  7247.  your system. 
  7248.  
  7249.  The LOG /H output can be used as the basis for writing batch files.  Start LOG 
  7250.  /H, then execute the commands that you want the batch file to execute.  When 
  7251.  you are finished, turn LOG /H off.  The resulting file can be turned into a 
  7252.  batch file that performs the same commands with little or no editing. 
  7253.  
  7254.  You can have both a regular log (with time and date stamping) and a history 
  7255.  log (without the time stamps) enabled simultaneously. 
  7256.  
  7257.  Options 
  7258.  
  7259.     /H:     (History log) This option makes the other options on the command 
  7260.             line (after the /H) apply to the history log.  For example, to turn 
  7261.             on history logging and write to the file C:\LOG\HLOG : 
  7262.  
  7263.                                 [c:\]  log /h /w c:\log\hlog
  7264.  
  7265.     /W:     (Write) This switch specifies a different filename for the LOG or 
  7266.             LOG /H output.  It also automatically performs a LOG ON command. 
  7267.             For example, to turn logging on and write the log to C:\LOG\LOGFILE 
  7268.             : 
  7269.  
  7270.                                 [c:\] log /w c:\log\logfile
  7271.  
  7272.             Once you select a new file name with the LOG /W or LOG /H/W 
  7273.             command, LOG will use that file until you issue another LOG /W or 
  7274.             LOG /H/W command, or until you reboot your computer.  Turning LOG 
  7275.             or LOG /H off or on does not change the file name. 
  7276.  
  7277.  
  7278. ΓòÉΓòÉΓòÉ 6.51. MD - Create a subdirectory ΓòÉΓòÉΓòÉ
  7279.  
  7280.  Purpose:    Create a subdirectory. 
  7281.  
  7282.  Format:     MD [/N /S] path ... 
  7283.                 or 
  7284.              MKDIR [/N /S] path ... 
  7285.  
  7286.              path :  The name of one or more directories to create. 
  7287.  
  7288.              /N(o update)                    /S(ubdirectories) 
  7289.  
  7290.  See also:  RD. 
  7291.  
  7292.  Usage 
  7293.  
  7294.  MD and MKDIR are synonyms.  You can use either one. 
  7295.  
  7296.  MD creates a subdirectory anywhere in the directory tree.  To create a 
  7297.  subdirectory from the root, start the path with a backslash [\].  For example, 
  7298.  this command creates a subdirectory called MYDIR in the root directory: 
  7299.  
  7300.           [c:\] md \mydir
  7301.  
  7302.  If no path is given, the new subdirectory is created in the current directory. 
  7303.  This example creates a subdirectory called DIRTWO in the current directory: 
  7304.  
  7305.           [c:\mydir] md dirtwo
  7306.  
  7307.  To create a directory from the parent of the current directory (that is, to 
  7308.  create a sibling of the current directory), start the pathname with two 
  7309.  periods and a backslash [..\]. 
  7310.  
  7311.  When creating a directory on an HPFS drive, you must quote any path which 
  7312.  contains whitespace or special characters.  See File Names for additional 
  7313.  details on file name quoting. 
  7314.  
  7315.  If MD creates one or more directories, they will be added automatically to the 
  7316.  extended directory search database unless the /N option is specified. 
  7317.  
  7318.  Options 
  7319.  
  7320.     /N:     (No Update) Do not update the extended directory search database, 
  7321.             JPSTREE.IDX  This is useful when creating a temporary directory 
  7322.             which you do not want to appear in the extended search database. 
  7323.  
  7324.     /S:     (Subdirectories) MD creates one directory at a time unless you use 
  7325.             the /S option.  If you need to create the directory 
  7326.             C:\ONE\TWO\THREE and none of the named directories exist, you can 
  7327.             use /S to have MD create all of the necessary subdirectories for 
  7328.             you in a single command: 
  7329.  
  7330.                                 [c:\] md /s \one\two\three
  7331.  
  7332.  
  7333. ΓòÉΓòÉΓòÉ 6.52. MEMORY - Display memory statistics ΓòÉΓòÉΓòÉ
  7334.  
  7335.  Purpose:    Display the amount and status of system RAM. 
  7336.  
  7337.  Format:     MEMORY 
  7338.  
  7339.  Usage 
  7340.  
  7341.  MEMORY lists the total physical and resident RAM in your system, the largest 
  7342.  free block of RAM, the swap file size, the total and free environment and 
  7343.  alias space, and the total history space.  If you use a non-standard swap file 
  7344.  location, the swap file size will be displayed as 0 unless you set the 
  7345.  SwapFilePath directive. 
  7346.  
  7347.  
  7348. ΓòÉΓòÉΓòÉ 6.53. MOVE - Move files ΓòÉΓòÉΓòÉ
  7349.  
  7350.  Purpose:    Move files to a new directory and drive. 
  7351.  
  7352.  Format:     MOVE  [/A:[[-]rhsda] /C /D /E /F /H /M /N /P /Q /R /S /T /U /V] 
  7353.              source ... destination 
  7354.  
  7355.              source :  A file or list of files to move. 
  7356.              destination :  The new location for the files. 
  7357.  
  7358.              /A: (Attribute select)          /P(rompt) 
  7359.              /C(hanged)                      /Q(uiet) 
  7360.              /D(irectory)                    /R(eplace) 
  7361.              /E (No error messages)          /S(ubdirectory tree) 
  7362.              /F(orce delete)                 /T(otal) 
  7363.              /H(idden and system)            /U(pdate) 
  7364.              /M(odified files)               /V(erify) 
  7365.              /N(othing) 
  7366.  
  7367.  See also:  COPY and RENAME. 
  7368.  
  7369.  File Selection 
  7370.  
  7371.  Supports extended wildcards, ranges, multiple file names, and include lists. 
  7372.  Date, time, or size ranges anywhere on the line apply to all source files. 
  7373.  
  7374.  Usage 
  7375.  
  7376.  The MOVE command moves one or more files from one directory to another, 
  7377.  whether the directories are on the same drive or not.  It has the same effect 
  7378.  as copying the files to a new location and then deleting the originals.  Like 
  7379.  COPY and RENAME, MOVE works with single files, multiple files, and sets of 
  7380.  files specified with an include list. 
  7381.  
  7382.  The simplest MOVE command moves a single source file to a new location and, 
  7383.  optionally, gives it a new name.  These two examples both move one file from 
  7384.  drive C: to the root directory on drive A: 
  7385.  
  7386.           [c:\] move myfile.dat a:\
  7387.           [c:\] move myfile.dat a:\savefile.dat
  7388.  
  7389.  In both cases, MYFILE.DAT is removed from drive C: after it has been copied to 
  7390.  drive A:.  If a file called MYFILE.DAT in the first example, or SAVEFILE.DAT 
  7391.  in the second example, already existed on drive A:, it would be overwritten. 
  7392.  (This demonstrates the difference between MOVE and RENAME.  MOVE will move 
  7393.  files between drives and will overwrite the destination file if it exists; 
  7394.  RENAME will not.) 
  7395.  
  7396.  When you move a single file, the destination can be a directory name or a file 
  7397.  name.  If it is a directory name, and you add a backslash [\] to the end of 
  7398.  the name, MOVE will display an error message if the name does not refer to an 
  7399.  existing directory.  You can use this feature to keep MOVE from treating a 
  7400.  mistyped destination directory name as a file name, and attempting to move the 
  7401.  source file to that name. 
  7402.  
  7403.  If you move multiple files, the destination must be a directory name.  MOVE 
  7404.  will move each file into the destination directory with its original name.  If 
  7405.  the destination is not a directory, MOVE will display an error message and 
  7406.  exit.  For example, if C:\FINANCE\MYFILES is not a directory, this command 
  7407.  will display an error; otherwise, the files will be moved to that directory: 
  7408.  
  7409.           [c:\] move *.wks *.txt c:\finance\myfiles
  7410.  
  7411.  The /D option can be used for single or multiple file moves; it checks to see 
  7412.  whether the destination is a directory, and will prompt to see if you want to 
  7413.  create the destination directory if it doesn't exist. 
  7414.  
  7415.  If MOVE creates one or more destination directories, they will be added 
  7416.  automatically to the extended directory search database. 
  7417.  
  7418.  You cannot move a file to a character device like the printer, or to itself. 
  7419.  
  7420.  Be careful when you use MOVE with the SELECT command.  If you SELECT multiple 
  7421.  files and the destination is not a directory (for example, because of a 
  7422.  misspelling), MOVE will assume it is a file name.  In this case each file will 
  7423.  be moved in turn to the destination file, overwriting the previous file, and 
  7424.  then the original will be erased before the next file is moved.  At the end of 
  7425.  the command, all of the original files will have been erased and only the last 
  7426.  file will exist as the destination file. 
  7427.  
  7428.  You can avoid this problem by using square brackets with SELECT instead of 
  7429.  parentheses (be sure that you don't allow the command line to get too long -- 
  7430.  watch the character count in the upper left corner while you're selecting 
  7431.  files).  MOVE will then receive one list of files to move instead of a series 
  7432.  of individual filenames, and it will detect the error and halt.  You can also 
  7433.  add a backslash [\] to the end of the destination name to ensure that it is 
  7434.  the name of a subdirectory (see above). 
  7435.  
  7436.  Advanced Features and Options 
  7437.  
  7438.  MOVE first attempts to rename the file(s), which is the fastest way to move 
  7439.  files between subdirectories on the same drive.  If that fails (e.g., because 
  7440.  the destination is on a different drive or already exists), MOVE will copy the 
  7441.  file(s) and then delete the originals. 
  7442.  
  7443.  If MOVE must physically copy the files and delete the originals, rather than 
  7444.  renaming them (see above), then some disk space may be freed on the source 
  7445.  drive.  The free space may be the result of moving the files to another drive, 
  7446.  or of overwriting a larger destination file with a smaller source file.  MOVE 
  7447.  displays the amount of disk space recovered unless the /Q option is used (see 
  7448.  below).  It does so by comparing the amount of free disk space before and 
  7449.  after the MOVE command is executed.  However, this amount may be incorrect if 
  7450.  you are using a deletion tracking system which retains deleted files for later 
  7451.  recovery, or if another program performs a file operation while the MOVE 
  7452.  command is executed. 
  7453.  
  7454.  When physically copying files, MOVE preserves the hidden, system, and 
  7455.  read-only attributes of the source files, and sets the archive attribute of 
  7456.  the destination files.  However, if the files can be renamed, and no copying 
  7457.  is required, then the file attributes are not changed. 
  7458.  
  7459.  Use caution with the /A: and /H switches (both of which can allow MOVE to 
  7460.  process hidden files) when you are physically moving files, and both the 
  7461.  source and destination directories contain file descriptions.  If the source 
  7462.  file specification matches the description file name (normally DESCRIPT.ION), 
  7463.  and you tell MOVE to process hidden files, the DESCRIPT.ION file itself will 
  7464.  be moved, overwriting any existing file descriptions in the destination 
  7465.  directory.  For example, if the C:\DATA directory contains file descriptions, 
  7466.  this command would overwrite any existing descriptions in the D:\SAVE 
  7467.  directory: 
  7468.  
  7469.           [c:\data] move /h d*.* d:\save\
  7470.  
  7471.  (If you remove the hidden attribute from the DESCRIPT.ION file the same 
  7472.  caution applies even if you do not use /A: or /H, as DESCRIPT.ION is then 
  7473.  treated like any other file.) 
  7474.  
  7475.  If you move a file from a FAT volume to an HPFS volume, and you do not give an 
  7476.  explicit destination name (i.e. you are moving the file to the current 
  7477.  directory, or your destination name is made up entirely of wildcards), MOVE 
  7478.  will look for a .LONGNAME extended attribute for the source file.  If it finds 
  7479.  that attribute, it will use the long filename for the destination file.  If it 
  7480.  does not, it will use the short name. 
  7481.  
  7482.  Similarly, if you MOVE files with long filenames from an HPFS volume to a FAT 
  7483.  volume, 4OS2 will create the destination files with short, FAT-compatible 
  7484.  names and save the long filenames in the .LONGNAME extended attribute.  The 
  7485.  short name is created by replacing special characters with underscores, adding 
  7486.  numeric digits to the filename (if necessary) to make the new name unique, and 
  7487.  truncating the name to fit with in the "8.3" FAT name structure. 
  7488.  
  7489.  Options 
  7490.  
  7491.     /A::    (Attribute select) Select only those files that have the specified 
  7492.             attribute(s) set.  Preceding the attribute character with a hyphen 
  7493.             [-] will select files that do not have that attribute set.  The 
  7494.             colon [:] after /A is required.  The attributes are: 
  7495.  
  7496.                            R  Read-only 
  7497.                            H  Hidden 
  7498.                            S  System 
  7499.                            D  Subdirectory 
  7500.                            A  Archive 
  7501.  
  7502.             If no attributes are listed at all (e.g., MOVE /A: ...), MOVE will 
  7503.             select all files and subdirectories including hidden and system 
  7504.             files.  If attributes are combined, all the specified attributes 
  7505.             must match for a file to be selected.  For example, /A:RHS will 
  7506.             select only those files with all three attributes set. 
  7507.  
  7508.             See the cautionary note under Advanced Features and Options above 
  7509.             before using /A: when both source and destination directories 
  7510.             contain file descriptions. 
  7511.  
  7512.     /C:     (Changed files) Move files only if the destination file exists and 
  7513.             is older than the source (see also /U).  This option is useful for 
  7514.             updating the files in one directory from those in another without 
  7515.             moving any newly-created files. 
  7516.  
  7517.     /D:     (Directory) Requires that the destination be a directory.  If the 
  7518.             destination does not exist, MOVE will prompt to see if you want to 
  7519.             create it.  If the destination exists as a file, MOVE will fail 
  7520.             with an "Access denied" error.  Use this option to avoid having 
  7521.             MOVE accidentally interpret your destination name as a file name 
  7522.             when it's really a mistyped directory name. 
  7523.  
  7524.     /E:     (No error messages) Suppress all non-fatal error messages, such as 
  7525.             "File Not Found."  Fatal error messages, such as "Drive not ready," 
  7526.             will still be displayed.  This option is most useful in batch files 
  7527.             and aliases. 
  7528.  
  7529.     /F:     (Force delete) This option forces deletion of the source file 
  7530.             without saving it to the DELDIR directory (if DELDIR is not in use, 
  7531.             /F has no effect).  /F is only effective when MOVE must copy the 
  7532.             source file(s) and delete the originals (i.e., if the destination 
  7533.             is on a different drive or the destination file already exists). 
  7534.             If the files are simply renamed, /F has no effect. 
  7535.  
  7536.     /H:     (Hidden) Move all files, including hidden and system files.  See 
  7537.             the cautionary note under Advanced Features and Options above 
  7538.             before using /H when both source and destination directories 
  7539.             contain file descriptions. 
  7540.  
  7541.     /M:     (Modified files) Move only files that have the archive bit set. The 
  7542.             archive bit will remain set after the MOVE; to clear it use ATTRIB. 
  7543.  
  7544.     /N:     (Nothing) Do everything except actually move the file(s). This 
  7545.             option is most useful for testing what a complex MOVE command will 
  7546.             do. 
  7547.  
  7548.     /P:     (Prompt) Prompt the user to confirm each move.  Your options at the 
  7549.             prompt are explained in detail under Page and File Prompts. 
  7550.  
  7551.     /Q:     (Quiet) Don't display filenames, the total number of files moved, 
  7552.             or the amount of disk space recovered, if any.  This option is most 
  7553.             often used in batch files. See also /T. 
  7554.  
  7555.     /R:     (Replace) Prompt for a Y or N response before overwriting an 
  7556.             existing destination file. 
  7557.  
  7558.     /S:     (Subdirectories) Move an entire subdirectory tree to another 
  7559.             location.  MOVE will attempt to create the destination directories 
  7560.             if they don't exist, and will remove empty subdirectories after the 
  7561.             move.  When /D is used with /S, you will be prompted if the first 
  7562.             destination directory does not exist, but subdirectories below that 
  7563.             will be created automatically by MOVE.  If MOVE /S creates one or 
  7564.             more destination directories, they will be added automatically to 
  7565.             the extended directory search database. 
  7566.  
  7567.             If you attempt to use /S to move a subdirectory tree into part of 
  7568.             itself, MOVE will detect the resulting infinite loop, display an 
  7569.             error message, and exit. 
  7570.  
  7571.     /T:     (Total) Don't display filenames as they are moved, but display the 
  7572.             total number of files moved and the amount of free disk space 
  7573.             recovered, if any. 
  7574.  
  7575.     /U:     (Update) Move each source file only if it is newer than a matching 
  7576.             destination file or if a matching destination file does not exist 
  7577.             (also see /C).  This option is useful for moving new or changed 
  7578.             files from one directory to another. 
  7579.  
  7580.     /V:     (Verify) Verify each disk write.  This is the same as executing the 
  7581.             VERIFY ON command, but is only active during the MOVE.  /V does not 
  7582.             read back the file and compare its contents with what was written; 
  7583.             it only verifies that the data written to disk is physically 
  7584.             readable. 
  7585.  
  7586.  
  7587. ΓòÉΓòÉΓòÉ 6.54. ON - Handle Ctrl-Break and errors in batch files ΓòÉΓòÉΓòÉ
  7588.  
  7589.  Purpose:    Execute a command in a batch file when a specific condition 
  7590.              occurs. 
  7591.  
  7592.  Format:     ON BREAK [command ] 
  7593.                 or 
  7594.              ON ERROR [command ] 
  7595.                 or 
  7596.              ON ERRORMSG [command ] 
  7597.  
  7598.  Usage 
  7599.  
  7600.  ON can only by used in batch files. 
  7601.  
  7602.  ON sets a "watchdog" that remains in effect for the duration of the current 
  7603.  batch file.  Whenever a BREAK or ERROR condition occurs after ON has been 
  7604.  executed, the corresponding command is automatically executed. 
  7605.  
  7606.  ON BREAK will execute the command if the user presses Ctrl-C or Ctrl-Break. 
  7607.  
  7608.  ON ERROR and ON ERRORMSG will execute the command after any command processor 
  7609.  or operating system error (including critical errors).  That is, they will 
  7610.  detect errors such as a disk write error, and 4OS2 errors such as a COPY 
  7611.  command that fails to copy any files, or the use of an unacceptable command 
  7612.  option. 
  7613.  
  7614.  ON ERROR executes the command immediately after the error occurs, without 
  7615.  displaying any command processor error message (operating system errors may 
  7616.  still be displayed in some cases).  ON ERRORMSG displays the appropriate error 
  7617.  message, then executes the command.  If both are specified, ON ERROR will take 
  7618.  precedence, and the ON ERRORMSG setting will be ignored.  The remainder of 
  7619.  this section discusses both settings together, using the term "ON ERROR[MSG]". 
  7620.  
  7621.  ON BREAK and ON ERROR[MSG] are independent of each other.  You can use either 
  7622.  one, or both, in any batch file. 
  7623.  
  7624.  Each time ON BREAK or ON ERROR[MSG] is used, it defines a new command to be 
  7625.  executed for a break or error, and any old command is discarded.  If you use 
  7626.  ON BREAK or ON ERROR[MSG] with no following command, that type of error 
  7627.  handling is disabled.  Error handling is also automatically disabled when the 
  7628.  batch file exits. 
  7629.  
  7630.  ON BREAK and ON ERROR[MSG] only affect the current batch file.  If you CALL 
  7631.  another batch file, the first batch file's error handling is suspended, and 
  7632.  the CALLed file must define its own error handling.  When control returns to 
  7633.  the first batch file, its error handling is reactivated. 
  7634.  
  7635.  The command can be any command that can be used on a batch file line by 
  7636.  itself.  Frequently, it is a GOTO or GOSUB command.  For example, the 
  7637.  following fragment traps any user attempt to end the batch file by pressing 
  7638.  Ctrl-C or Ctrl-Break.  It scolds the user for trying to end the batch file and 
  7639.  then continues displaying the numbers from 1 to 1000: 
  7640.  
  7641.           on break gosub gotabreak
  7642.           do i = 1 to 1000
  7643.              echo %i
  7644.           enddo
  7645.           quit
  7646.           :gotabreak
  7647.           echo Hey!  Stop that!!
  7648.           return
  7649.  
  7650.  You can use a command group as the command if you want to execute multiple 
  7651.  commands, for example: 
  7652.  
  7653.           on break (echo Oops, got a break! & quit)
  7654.  
  7655.  ON BREAK and ON ERROR[MSG] always assume that you want to continue executing 
  7656.  the batch file.  After the command is executed, control automatically returns 
  7657.  to the next command in the batch file (the command after the one that was 
  7658.  interrupted by the break or error).  The only way to avoid continuing the 
  7659.  batch file after a break or error is for the command to transfer control to 
  7660.  another point with GOTO, end the batch file with QUIT or CANCEL, or start 
  7661.  another batch file (without CALLing it). 
  7662.  
  7663.  When handling an error condition with ON ERROR[MSG], you may find it useful to 
  7664.  use internal variables, particularly %_? and %_SYSERR, to help determine the 
  7665.  cause of the error. 
  7666.  
  7667.  The ON ERROR[MSG] command will not be invoked if an error occurs while reading 
  7668.  or writing a redirected input file, output file, or pipe. 
  7669.  
  7670.  Caution:  If a break or error occurs while the command specified in ON BREAK 
  7671.  or ON ERROR[MSG] is executing, the command will be restarted.  This means you 
  7672.  must use caution to avoid or handle any possible errors in the commands 
  7673.  invoked by ON ERROR[MSG], since such errors can cause an infinite loop. 
  7674.  
  7675.  
  7676. ΓòÉΓòÉΓòÉ 6.55. OPTION - Modify the command processor configuration ΓòÉΓòÉΓòÉ
  7677.  
  7678.  Purpose:    Modify the command processor configuration 
  7679.  
  7680.  Format:     OPTION [//optname =value ...] 
  7681.  
  7682.              optname :  An INI file directive to set or modify. 
  7683.              value :  A new value for that directive. 
  7684.  
  7685.  See also:  4OS2.INI. 
  7686.  
  7687.  Usage 
  7688.  
  7689.  OPTION displays a settings notebook which allows you to modify many of the 
  7690.  configuration options stored in the file 4OS2.INI. 
  7691.  
  7692.  When you exit from the notebook, you can select the Save button to save your 
  7693.  changes in 4OS2.INI for use in the current session and all future sessions, 
  7694.  select the OK button to use your changes in the current session only, or 
  7695.  select the Cancel button to discard the changes. 
  7696.  
  7697.  Save saves all changes since the last Save, or since the last time you started 
  7698.  the command processor.  If you run OPTION and exit with OK, any changes will 
  7699.  not be saved in 4OS2.INI at that time.  However, if you run OPTION again and 
  7700.  exit with Save, any earlier changes will automatically be saved in the .INI 
  7701.  file along with any new changes. 
  7702.  
  7703.  In most cases, changes you make in the Startup section of the OPTION dialogs 
  7704.  or notebook will only take effect when you restart your command processor. 
  7705.  
  7706.  Other changes take effect as soon as you exit the dialogs or notebook with 
  7707.  Save  or OK.  However, not all option changes will appear immediately, even if 
  7708.  they have taken effect.  For example, some color changes will only appear 
  7709.  after a CLS command. 
  7710.  
  7711.  OPTION handles most standard 4OS2.INI file settings.  More advanced settings, 
  7712.  including all those listed under Key Mapping Directives and Advanced 
  7713.  Directives cannot be modified with the OPTION dialogs or notebook.  These 
  7714.  settings must be inserted or modified in 4OS2.INI manually. 
  7715.  
  7716.  OPTION does not preserve comments when saving modified settings in the 
  7717.  4OS2.INI file.  To be sure .INI file comments are preserved, put them on 
  7718.  separate lines in the file.  See Modifying the .INI File additional details. 
  7719.  
  7720.  OPTION runs the external program OPTION.EXE to display the notebook.  If the 
  7721.  command processor cannot find OPTION.EXE it will display an error message. 
  7722.  OPTION.EXE must be run with the OPTION command, and will not work if you 
  7723.  invoke it directly. 
  7724.  
  7725.  Setting Individual Options 
  7726.  
  7727.  If you follow the OPTION command with one or more sequences of a double slash 
  7728.  mark [//] followed by an option=value setting, the OPTION notebook will not 
  7729.  appear.  Instead, the new settings will take effect immediately, and will be 
  7730.  in effect for the current session only.  This example turns off batch file 
  7731.  echo and changes the input colors to bright cyan on black (enter this all on 
  7732.  one line): 
  7733.  
  7734.           [c:\] option //BatchEcho = No //InputColors = bri cya on bla
  7735.  
  7736.  Option values may contain whitespace.  However, you cannot enter an option 
  7737.  value which contains the "//" string. 
  7738.  
  7739.  This feature is most useful for testing settings quickly, and in aliases or 
  7740.  batch files which depend on certain options being in effect. 
  7741.  
  7742.  Changes made with // are temporary.  They will not be saved in 4OS2.INI, even 
  7743.  if you subsequently load the option dialogs and select Save. 
  7744.  
  7745.  
  7746. ΓòÉΓòÉΓòÉ 6.56. PATH - Set the executable file search path ΓòÉΓòÉΓòÉ
  7747.  
  7748.  Purpose:    Display or alter the list of directories that 4OS2 will search for 
  7749.              executable files, batch files, and files with executable 
  7750.              extensions that are not in the current directory. 
  7751.  
  7752.  Format:     PATH [directory [;directory ...]] 
  7753.  
  7754.              directory :  The full name of a directory to include in the path 
  7755.              setting. 
  7756.  
  7757.  See also:  ESET and SET. 
  7758.  
  7759.  Usage 
  7760.  
  7761.  When 4OS2 is asked to execute an external command (a .COM, .EXE, .BTM, .BAT, 
  7762.  or .CMD file or executable extension), it first looks for the file in the 
  7763.  current directory. If it fails to find an executable file there, it then 
  7764.  searches each of the directories specified in the PATH setting. 
  7765.  
  7766.  For example, after the following PATH command, 4OS2 will search for an 
  7767.  executable file in four directories:  the current directory, then the root 
  7768.  directory on drive C, then the DOS subdirectory on C, and then the UTIL 
  7769.  subdirectory on C: 
  7770.  
  7771.           [c:\] path c:\;c:\dos;c:\util
  7772.  
  7773.  The list of directories to search can be set or viewed with the PATH command. 
  7774.  The list is stored as an environment string, and can also be set or viewed 
  7775.  with SET, and edited with ESET. 
  7776.  
  7777.  Directory names in the path must be separated by semicolons [;].  Each 
  7778.  directory name is shifted to upper case to maintain compatibility with 
  7779.  programs which can only recognize upper case directory names in the path.  If 
  7780.  you modify your path with the SET or ESET command, you may include directory 
  7781.  names in lower case.  These may cause trouble with some programs, which assume 
  7782.  that all path entries have been shifted to upper case. 
  7783.  
  7784.  If you enter PATH with no parameters, the current path is displayed: 
  7785.  
  7786.           [c:\] path
  7787.           PATH=C:\;C:\DOS;C:\UTIL
  7788.  
  7789.  Entering PATH and a semicolon clears the search path so that only the current 
  7790.  directory is searched for executable files (this is the default at system 
  7791.  startup). 
  7792.  
  7793.  Some applications also use the PATH to search for their data files. 
  7794.  
  7795.  4OS2 normally searches the path for files with the extensions .COM, .EXE, 
  7796.  .BTM, .CMD, and .BAT (in that order).  However, if you include an explicit 
  7797.  file extension on a command name (for example, WP.EXE), the search will find 
  7798.  files with that name and extension in the current directory and every 
  7799.  directory in the path.  It will not locate other executable files with the 
  7800.  same base name (e.g., WP.COM). 
  7801.  
  7802.  The standard list of extensions for which to search can be modified by setting 
  7803.  PathExt to Yes in 4OS2.INI, then setting the PATHEXT variable. 
  7804.  
  7805.  If you have an entry in the path which consists of a single period [.], the 
  7806.  current directory will not be searched first, but instead will be searched 
  7807.  when 4OS2 reaches the "." in the path.  This allows you to delay the search of 
  7808.  the current directory for executable files and files with executable 
  7809.  extensions.  In rare cases, this feature may not be compatible with 
  7810.  applications which use the path to find their files; if you experience a 
  7811.  problem, you will have to remove the "." from the path while using any such 
  7812.  application. 
  7813.  
  7814.  To create a path longer than the command-line length limit, use PATH 
  7815.  repeatedly to append additional directories to the path: 
  7816.  
  7817.           path [first list of directories]
  7818.           path %path;[second list of directories]
  7819.           ...
  7820.  
  7821.  You cannot use this method to extend the path beyond 2042 characters (the 
  7822.  internal buffer limit, with room for "PATH ").  It is usually more efficient 
  7823.  to use aliases to load application programs than to create a long PATH.  See 
  7824.  ALIAS for details. 
  7825.  
  7826.  If you specify an invalid directory in the path, it will be skipped and the 
  7827.  search will continue with the next directory in the path. 
  7828.  
  7829.  
  7830. ΓòÉΓòÉΓòÉ 6.57. PAUSE - Suspend batch file or alias execution ΓòÉΓòÉΓòÉ
  7831.  
  7832.  Purpose:    Suspend batch file or alias execution. 
  7833.  
  7834.  Format:     PAUSE [text ] 
  7835.  
  7836.              text :  The message to be displayed as a user prompt. 
  7837.  
  7838.  Usage 
  7839.  
  7840.  A PAUSE command will suspend execution of a batch file or alias, giving you 
  7841.  the opportunity to change disks, turn on the printer, etc. 
  7842.  
  7843.  PAUSE waits for any key to be pressed and then continues execution. You can 
  7844.  specify the text that PAUSE displays while it waits for a keystroke, or let it 
  7845.  use the default message: 
  7846.  
  7847.           Press any key when ready...
  7848.  
  7849.  For example, the following batch file fragment prompts the user before erasing 
  7850.  files: 
  7851.  
  7852.           pause Press Ctrl-C to abort, any other key to erase all .LST files
  7853.           erase *.lst
  7854.  
  7855.  If you press Ctrl-C or Ctrl-Break while PAUSE is waiting for a key, execution 
  7856.  of an alias will be terminated, and execution of a batch file will be 
  7857.  suspended while you are asked whether to cancel the batch job.  In a batch 
  7858.  file you can handle Ctrl-C and Ctrl-Break yourself with the ON BREAK command. 
  7859.  
  7860.  
  7861. ΓòÉΓòÉΓòÉ 6.58. POPD - Restore the disk drive and directory ΓòÉΓòÉΓòÉ
  7862.  
  7863.  Purpose:    Return to the disk drive and directory at the top of the directory 
  7864.              stack.. 
  7865.  
  7866.  Format:     POPD [*] 
  7867.  
  7868.  See also:  DIRS, PUSHD, and Directory Navigation. 
  7869.  
  7870.  Usage 
  7871.  
  7872.  Each time you use the PUSHD command, it saves the current disk drive and 
  7873.  directory on the internal directory stack.  POPD restores the last drive and 
  7874.  directory that was saved with PUSHD and removes that entry from the stack. 
  7875.  You can use these commands together to change directories, perform some work, 
  7876.  and return to the starting drive and directory. 
  7877.  
  7878.  Directory changes made with POPD are recorded in the directory history list 
  7879.  and can be displayed in the directory history window.  See Directory 
  7880.  Navigation for complete details on this and other directory navigation 
  7881.  features. 
  7882.  
  7883.  This example saves and changes the current disk drive and directory with 
  7884.  PUSHD, and then restores it.  The current directory is shown in the prompt: 
  7885.  
  7886.           [c:\] pushd d:\database\test
  7887.           [d:\database\test] pushd c:\wordp\memos
  7888.           [c:\wordp\memos] pushd a:\123
  7889.           [a:\123] popd
  7890.           [c:\wordp\memos] popd
  7891.           [d:\database\test] popd
  7892.           [c:\]
  7893.  
  7894.  You can use the DIRS command to see the complete list of saved drives and 
  7895.  directories (the directory stack). 
  7896.  
  7897.  The POPD command followed by an asterisk [*] clears the directory stack 
  7898.  without changing the current drive and directory. 
  7899.  
  7900.  If the directory on the top of the stack is not on the current drive, POPD 
  7901.  will switch to the drive and directory on the top of the stack without 
  7902.  changing the default directory on the current drive. 
  7903.  
  7904.  
  7905. ΓòÉΓòÉΓòÉ 6.59. PROMPT - Change the command-line prompt ΓòÉΓòÉΓòÉ
  7906.  
  7907.  Purpose:    Change the command-line prompt. 
  7908.  
  7909.  Format:     PROMPT [text ] 
  7910.  
  7911.              text :  Text to be used as the new command-line prompt. 
  7912.  
  7913.  Usage 
  7914.  
  7915.  You can change and customize the command-line prompt at any time.  The prompt 
  7916.  can include normal text, and system information such as the current drive and 
  7917.  directory, the time and date, and the amount of memory available.  You can 
  7918.  create an informal "Hello, Bob!" prompt or an official-looking prompt full of 
  7919.  impressive information.  The prompt text can contain special commands in the 
  7920.  form $?, where ? is one of the characters listed below: 
  7921.  
  7922.         b     The vertical bar character [|]. 
  7923.         c     The open parenthesis [(]. 
  7924.         d     Current date, in the format:  Fri 2-12-97 (the month, day, and 
  7925.               year are formatted according to your current country settings). 
  7926.         D     Current date, in the format:  Fri  Dec 12, 1997. 
  7927.         e     The ASCII ESC character (decimal 27). 
  7928.         f     The close parenthesis [)]. 
  7929.         g     The > character. 
  7930.         h     Backspace over the previous character. 
  7931.         i     Display the OS/2 prompt header line, which reminds you of how to 
  7932.               return to the OS/2 desktop, or get help. 
  7933.         l     The < character. 
  7934.         m     Time in hours and minutes using 24-hour format:  16:07 
  7935.         M     Time in hours and minutes using the default country format and 
  7936.               retaining "a" or "p", e.g. 4:07p. 
  7937.         n     Current drive letter. 
  7938.         p     Current directory (lower case). 
  7939.         P     Current directory (upper case on FAT drives; directory names 
  7940.               shown in mixed case as stored on the disk on HPFS drives). 
  7941.         q     The = character. 
  7942.         r     The numeric exit code of the last external command. 
  7943.         s     The space character. 
  7944.         t     Current 24-hour time, in the format hh:mm:ss. 
  7945.         T     Current 12-hour time, in the format hh:mm:ss[a|p]. 
  7946.         v     Operating system version number, in the format 3.10. 
  7947.         xd:   Current directory on drive d:, in lower case, including the drive 
  7948.               letter (uses the actual case of the directory name as stored on 
  7949.               the disk for HPFS drives). 
  7950.         Xd:   Current directory on drive d:, in upper case, including the drive 
  7951.               letter. 
  7952.         z     Current shell nesting level; the primary command processor is 
  7953.               shell 0. 
  7954.         +     Display one + character for each directory on the PUSHD directory 
  7955.               stack. 
  7956.         $     The $ character. 
  7957.         _     CR/LF (go to beginning of a new line). 
  7958.  
  7959.  For example, to set the prompt to the current date and time, with a ">" at the 
  7960.  end: 
  7961.  
  7962.           [c:\] prompt $D $t $g
  7963.           Fri  Jun 6, 1997 10:29:19 >
  7964.  
  7965.  To set the prompt to the current date and time, followed by the current drive 
  7966.  and directory in upper case on the next line, with a ">" at the end: 
  7967.  
  7968.           [c:\] prompt $d $t$_$P$g
  7969.           Fri  Dec 2, 1994 10:29:19
  7970.           [c:\]
  7971.  
  7972.  The 4OS2 prompt can be set in CONFIG.SYS (see below), and the prompt for any 
  7973.  command processor can be set in 4START, or in any batch file that runs when 
  7974.  4OS2 starts. 
  7975.  
  7976.  The 4OS2 default prompt is [$n] (drive name in square brackets) on floppy 
  7977.  drives, and [$p] (current drive and directory in square brackets) on all other 
  7978.  drives.  When OS/2 is installed, it inserts a SET PROMPT statement in 
  7979.  CONFIG.SYS to set the prompt to $i[$p].  This prompt will override the 4OS2 
  7980.  defaults.  The $i adds a header line to the default prompt to remind you of 
  7981.  certain OS/2 keystrokes.  You must delete this statement if you want to use 
  7982.  the default 4OS2 prompt. 
  7983.  
  7984.  If you enter PROMPT with no arguments, the prompt will be reset to its default 
  7985.  value.  The PROMPT command sets the environment variable PROMPT, so to view 
  7986.  the current prompt setting use the command: 
  7987.  
  7988.           [c:\] set prompt
  7989.  
  7990.  (If the prompt is not set at all, the PROMPT environment variable will not be 
  7991.  used, in which case the SET command above will give a "Not in environment" 
  7992.  error.) 
  7993.  
  7994.  Along with literal text, special characters, and ANSI sequences you can 
  7995.  include the text of any environment variable, internal variable, or variable 
  7996.  function in a prompt.  For example, if you want to include the size of the 
  7997.  largest free memory block in the command prompt, plus the current drive and 
  7998.  directory, you could use this command: 
  7999.  
  8000.           [c:\] prompt (%%@dosmem[K]K) $p$g
  8001.           (601K) [c:\data]
  8002.  
  8003.  Notice that the @DOSMEM function is shown with two leading percent signs [%]. 
  8004.  If you used only one percent sign, the @DOSMEM function would be expanded once 
  8005.  when the PROMPT command was executed, instead of every time the prompt is 
  8006.  displayed.  As a result, the amount of memory would never change from the 
  8007.  value it had when you entered the PROMPT command.  You can also use back 
  8008.  quotes to delay expanding the variable function until the prompt is displayed: 
  8009.  
  8010.           [c:\] prompt `(%@dosmem[K]K) $p$g`
  8011.  
  8012.  You can use this feature along with the @EXEC variable function to create a 
  8013.  complex prompt which not only displays information but executes commands.  For 
  8014.  example, to execute an alias which checks battery status each time the prompt 
  8015.  is displayed (enter the alias on one line): 
  8016.  
  8017.           [c:\] alias cbatt `if %_apmlife lt 30 beep 440 4 880 4 440
  8018.            4 880 4`
  8019.           [c:\] prompt `%@exec[@cbatt]$p$g`
  8020.  
  8021.  You can include ANSI escape sequences in the PROMPT text.  See ANSI for 
  8022.  complete details on ANSI commands.  This example uses ANSI sequences to set a 
  8023.  prompt that displays the shell level, date, time and path in color on the top 
  8024.  line of the screen (enter the command as one line): 
  8025.  
  8026.           [c:\] prompt $e[s$e[1;1f$e[41;1;37m$e[K[$z] $d
  8027.                 Time: $t$h$h$h  Path: $p$e[u$e[0;32m$n$g
  8028.  
  8029.  A few older batch files use the PROMPT command to transmit ANSI.SYS control 
  8030.  sequences to the screen (for example, to redefine function keys).  This 
  8031.  technique will not work with 4OS2, because it doesn't display a prompt within 
  8032.  batch files; hence, the characters in the PROMPT string are never sent to 
  8033.  ANSI.SYS.  To send ANSI sequences in 4OS2, use the ECHO command, substituting 
  8034.  an escape character followed by an e for $e in the PROMPT string. 
  8035.  
  8036.  You may find it helpful to define a different prompt in secondary shells, 
  8037.  perhaps including $z in the prompt to display the shell level.  To do so, 
  8038.  place a PROMPT command in your 4START file and use IF or IFF statements to set 
  8039.  the appropriate prompt for different shells. 
  8040.  
  8041.  
  8042. ΓòÉΓòÉΓòÉ 6.60. PUSHD - Save the disk drive and directory ΓòÉΓòÉΓòÉ
  8043.  
  8044.  Purpose:    Save the current disk drive and directory, optionally changing to 
  8045.              a new drive and directory. 
  8046.  
  8047.  Format:     PUSHD [path ] 
  8048.  
  8049.              path :  The name of the new default drive and directory. 
  8050.  
  8051.  See also:  CD, CDD, DIRS, POPD, and Directory Navigation. 
  8052.  
  8053.  Usage 
  8054.  
  8055.  PUSHD saves the current drive and directory on a "last in, first out" 
  8056.  directory stack.  The POPD command returns to the last drive and directory 
  8057.  that was saved by PUSHD.  You can use these commands together to change 
  8058.  directories, perform some work, and return to the starting drive and 
  8059.  directory.  The DIRS command displays the contents of the directory stack. 
  8060.  
  8061.  To save the current drive and directory, without changing directories, use the 
  8062.  PUSHD command by itself, with no path. 
  8063.  
  8064.  If a path is specified as part of the PUSHD command, the current drive and 
  8065.  directory are saved and PUSHD changes to the specified drive and directory. 
  8066.  If the path includes a drive letter, PUSHD changes to the specified directory 
  8067.  on the new drive without changing the current directory on the original drive. 
  8068.  
  8069.  This example saves the current directory and changes to C:\WORDP\MEMOS, then 
  8070.  returns to the original directory: 
  8071.  
  8072.           [c:\] pushd \wordp\memos
  8073.           [c:\wordp\memos] popd
  8074.           [c:\]
  8075.  
  8076.  When you use PUSHD to change to a directory on an HPFS drive, you must quote 
  8077.  the path name if it contains whitespace or special characters.  See File Names 
  8078.  for additional details. 
  8079.  
  8080.  PUSHD can also change to a network drive and directory specified with a UNC 
  8081.  name (see File Systems for a description of UNC names). 
  8082.  
  8083.  If PUSHD cannot change to the directory you have specified it will attempt to 
  8084.  search the CDPATH and the extended directory search database.  You can also 
  8085.  use wildcards in the path to force an extended directory search.  See the 
  8086.  Directory Navigation section for complete details on these and other directory 
  8087.  navigation features. 
  8088.  
  8089.  Directory changes made with PUSHD are also recorded in the directory history 
  8090.  list and can be displayed in the directory history window. 
  8091.  
  8092.  The directory stack can hold up to 511 characters, or about 20 to 40 entries 
  8093.  (depending on the length of the names).  If you exceed this limit, the oldest 
  8094.  entry is removed before adding a new entry. 
  8095.  
  8096.  The /N option available in CD and CDD to disable extended directory searches 
  8097.  is not available in PUSHD.  To disable extended searches when using PUSHD, 
  8098.  save the current directory with PUSHD (without parameters) and then use CDD /N 
  8099.  to change directories, for example: 
  8100.  
  8101.        pushd
  8102.        cdd /n testdir
  8103.  
  8104.  
  8105. ΓòÉΓòÉΓòÉ 6.61. QUIT - Terminate a batch file ΓòÉΓòÉΓòÉ
  8106.  
  8107.  Purpose:    Terminate the current batch file. 
  8108.  
  8109.  Format:     QUIT [value ] 
  8110.  
  8111.              value :  The numeric exit code to return to 4OS2 or to the 
  8112.              previous batch file. 
  8113.  
  8114.  See also:  CANCEL. 
  8115.  
  8116.  Usage 
  8117.  
  8118.  QUIT provides a simple way to exit a batch file before reaching the end of the 
  8119.  file.  If you QUIT a batch file called from another batch file, you will be 
  8120.  returned to the previous file at the line following the original CALL. 
  8121.  
  8122.  QUIT only ends the current batch file.  To end all batch file processing, use 
  8123.  the CANCEL command. 
  8124.  
  8125.  If you specify a value, QUIT will set the ERRORLEVEL or exit code to that 
  8126.  value.  For information on exit codes see the IF command, and the %? variable. 
  8127.  
  8128.  You can also use QUIT to terminate an alias.  If you QUIT an alias while 
  8129.  inside a batch file, QUIT will end both the alias and the batch file and 
  8130.  return you to the command prompt or to the calling batch file. 
  8131.  
  8132.  
  8133. ΓòÉΓòÉΓòÉ 6.62. RD - Remove subdirectories ΓòÉΓòÉΓòÉ
  8134.  
  8135.  Purpose:    Remove one or more subdirectories. 
  8136.  
  8137.  Format:     RD path ... 
  8138.                 or 
  8139.              RMDIR path ... 
  8140.  
  8141.              path :  The name of one or more subdirectories to remove. 
  8142.  
  8143.  See also:  MD. 
  8144.  
  8145.  File Selection 
  8146.  
  8147.  Supports extended wildcards, ranges, multiple file names, and include lists. 
  8148.  
  8149.  Usage 
  8150.  
  8151.  RD and RMDIR are synonyms.  You can use either one. 
  8152.  
  8153.  RD removes directories from the directory tree.  For example, to remove the 
  8154.  subdirectory MEMOS from the subdirectory WP, you can use this command: 
  8155.  
  8156.           [c:\] rd \wp\memos
  8157.  
  8158.  Before using RD, you must delete all files and subdirectories (and their 
  8159.  files) in the path you want to remove.  Remember to remove hidden and 
  8160.  read-only files as well as normal files (you can use DEL /Z to delete hidden 
  8161.  and read-only files). 
  8162.  
  8163.  You can use wildcards in the path. 
  8164.  
  8165.  When removing a directory on an HPFS drive, you must quote any path which 
  8166.  contains whitespace or special characters.  See File Names for additional 
  8167.  details. 
  8168.  
  8169.  If RD removes one or more directories, they will be deleted automatically from 
  8170.  the extended directory search database. 
  8171.  
  8172.  You cannot remove the root directory, the current directory (.), any directory 
  8173.  above the current directory in the directory tree, or any directory in use by 
  8174.  another process in a multitasking system. 
  8175.  
  8176.  
  8177. ΓòÉΓòÉΓòÉ 6.63. REBOOT - Reboot the system ΓòÉΓòÉΓòÉ
  8178.  
  8179.  Purpose:    Do a system reboot. 
  8180.  
  8181.  Format:     REBOOT [/S /V] 
  8182.  
  8183.              /S(hutdown)                     /V(erify) 
  8184.  
  8185.  Usage 
  8186.  
  8187.  REBOOT will log off or shut down the operating system, or completely restart 
  8188.  your computer.  It normally performs a warm reboot, which is comparable to 
  8189.  pressing Ctrl-Alt-Delete.  A reboot is necessary to activate any changes to 
  8190.  your CONFIG.SYS file. 
  8191.  
  8192.  The following example prompts you to verify the reboot, then does a warm boot: 
  8193.  
  8194.           [c:\] reboot /v
  8195.  
  8196.  REBOOT defaults to performing a warm boot, with no prompting. 
  8197.  
  8198.  REBOOT flushes the disk buffers, resets the drives, and waits one second 
  8199.  before rebooting, to allow disk caching programs to finish writing any cached 
  8200.  data.  4OS2 issues commands to shut down OS/2 before rebooting. 
  8201.  
  8202.  REBOOT uses the DOS.SYS device driver to reboot your system.  DOS.SYS is 
  8203.  loaded via a DEVICE= statement in your CONFIG.SYS file.  If DOS.SYS is not 
  8204.  loaded, REBOOT will not work. 
  8205.  
  8206.  Options 
  8207.  
  8208.     /S:     (Shutdown) Shut down the system, but do not reboot.  This option is 
  8209.             equivalent to clicking the "Shutdown" choice on the Workplace Shell 
  8210.             popup menu. 
  8211.  
  8212.     /V:     (Verify) Prompt for confirmation (Y or N) before rebooting or 
  8213.             taking the action specified by other REBOOT options. 
  8214.  
  8215.  
  8216. ΓòÉΓòÉΓòÉ 6.64. REM - Put a comment in a batch file ΓòÉΓòÉΓòÉ
  8217.  
  8218.  Purpose:    Put a comment in a batch file. 
  8219.  
  8220.  Format:     REM [comment ] 
  8221.  
  8222.              comment :  The text to include in the batch file. 
  8223.  
  8224.  Usage 
  8225.  
  8226.  The REM command lets you place a remark or comment in a batch file.  Batch 
  8227.  file comments are useful for documenting the purpose of a batch file and the 
  8228.  procedures you have used. 
  8229.  
  8230.  REM must be followed by a space or tab character and then your comment. 
  8231.  Comments can be up to 1023 characters long.  4OS2 will normally ignore 
  8232.  everything on the line after the REM command, including quote characters, 
  8233.  redirection symbols, and other commands (see below for the exception to this 
  8234.  rule). 
  8235.  
  8236.  If ECHO is ON, the comment is displayed.  Otherwise, it is ignored.  If ECHO 
  8237.  is ON and you don't want to display the line, preface the REM command with an 
  8238.  at sign [@]. 
  8239.  
  8240.  You can also place a comment in a batch file by starting the comment line with 
  8241.  two colons [::].  In essence this creates a batch file "label" without a valid 
  8242.  label name.  Such comments are processed slightly faster than those entered 
  8243.  with REM, because they do not require the command processor to handle a 
  8244.  command. 
  8245.  
  8246.  You can use REM to create a zero-byte file if you use a redirection symbol 
  8247.  after the REM command.  No text is permitted between the REM command and the 
  8248.  redirection symbol.  For example, to create the zero-byte file C:\FOO : 
  8249.  
  8250.           [c:\] rem > foo
  8251.  
  8252.  (This capability is included for compatibility with CMD.EXE.  A simpler method 
  8253.  for creating a zero-byte file with 4OS2 is to use >filename as a command, with 
  8254.  no actual command before the [>] redirection character.) 
  8255.  
  8256.  
  8257. ΓòÉΓòÉΓòÉ 6.65. REN - Rename files or subdirectories ΓòÉΓòÉΓòÉ
  8258.  
  8259.  Purpose:    Rename files or subdirectories. 
  8260.  
  8261.  Format:     REN [/A:[[-]rhsda] /E /N /P /Q /S /T] old_name ... new_name 
  8262.                 or 
  8263.              RENAME [/A:[[-]rhsda] /E /N /P /Q /S /T] old_name ... new_name 
  8264.  
  8265.              old_name :  Original name of the file(s) or subdirectory. 
  8266.              new_name :  New name to use, or new path on the same drive. 
  8267.  
  8268.              /A: (Attribute select)          /Q(uiet) 
  8269.              /E (No error messages)          /S(ubdirectory) 
  8270.              /N(othing)                      /T(otal) 
  8271.              /P(rompt) 
  8272.  
  8273.  See also:  COPY and MOVE. 
  8274.  
  8275.  File Selection 
  8276.  
  8277.  Supports extended wildcards, ranges, multiple file names, and include lists. 
  8278.  
  8279.  Usage 
  8280.  
  8281.  REN and RENAME are synonyms.  You may use either one. 
  8282.  
  8283.  REN lets you change the name of a file or a subdirectory, or move one or more 
  8284.  files to a new subdirectory on the same drive.  (If you want to move files to 
  8285.  a different drive, use MOVE.) 
  8286.  
  8287.  In its simplest form, you give REN the old_name of an existing file or 
  8288.  subdirectory and then a new_name.  The new_name must not already exist -- you 
  8289.  can't give two files the same name (unless they are in different directories). 
  8290.  The first example renames the file MEMO.TXT to MEM.TXT.  The second example 
  8291.  changes the name of the \WORD directory to \WP : 
  8292.  
  8293.           [c:\] rename memo.txt mem.txt
  8294.           [c:\] rename \word \wp
  8295.  
  8296.  If you use REN to rename a directory, the extended directory search database 
  8297.  will be automatically updated to reflect the change. 
  8298.  
  8299.  When you rename files on an HPFS drive, you must quote any file names which 
  8300.  contain whitespace or special characters.  See File Names for additional 
  8301.  details. 
  8302.  
  8303.  You can also use REN to rename a group of files that you specify with 
  8304.  wildcards, as multiple files, or in an include list.  When you do, the 
  8305.  new_name must use one or more wildcards to show what part of each filename to 
  8306.  change.  Both of the next two examples change the extensions of multiple files 
  8307.  to .SAV : 
  8308.  
  8309.           [c:\] ren config.sys autoexec.bat 4start.btm *.sav
  8310.           [c:\] ren *.txt *.sav
  8311.  
  8312.  REN can move files to a different subdirectory on the same drive.  When it is 
  8313.  used for this purpose, REN requires one or more filenames for the old_name and 
  8314.  a directory name for the new_name : 
  8315.  
  8316.           [c:\] ren memo.txt \wp\memos\
  8317.           [c:\] ren oct.dat nov.dat \data\save\
  8318.  
  8319.  The final backslash in the last two examples is optional.  If you use it, you 
  8320.  force REN to recognize the last argument as the name of a directory, not a 
  8321.  file.  The advantage of this approach is that if you accidentally mistype the 
  8322.  directory name, REN will report an error instead of renaming your files in a 
  8323.  way that you didn't intend. 
  8324.  
  8325.  Finally, REN can move files to a new directory and change their name at the 
  8326.  same time if you specify both a path and file name for new_name.  In this 
  8327.  example, the files are renamed with an extension of .SAV as they are moved to 
  8328.  a new directory: 
  8329.  
  8330.           [c:\] ren *.dat \data\save\*.sav
  8331.  
  8332.  You cannot rename a subdirectory to a new location on the directory tree. 
  8333.  
  8334.  REN does not change a file's attributes.  The new_name file(s) will have the 
  8335.  same attributes as old_name. 
  8336.  
  8337.  Options 
  8338.  
  8339.     /A::    (Attribute select) Select only those files that have the specified 
  8340.             attribute(s) set.  Preceding the attribute character with a hyphen 
  8341.             [-] will select files that do not have that attribute set.  The 
  8342.             colon [:] after /A is required.  The attributes are: 
  8343.  
  8344.                            R  Read-only 
  8345.                            H  Hidden 
  8346.                            S  System 
  8347.                            D  Subdirectory 
  8348.                            A  Archive 
  8349.  
  8350.             If no attributes are listed at all (e.g., REN /A: ...), REN will 
  8351.             select all files and subdirectories including hidden and system 
  8352.             files.  If attributes are combined, all the specified attributes 
  8353.             must match for a file to be selected.  For example, /A:RHS will 
  8354.             select only those files with all three attributes set. 
  8355.  
  8356.     /E:     (No error messages) Suppress all non-fatal error messages, such as 
  8357.             "File Not Found."  Fatal error messages, such as "Drive not ready," 
  8358.             will still be displayed.  This option is most useful in batch 
  8359.             files. 
  8360.  
  8361.     /N:     (Nothing) Do everything except actually rename the file(s).  This 
  8362.             option is useful for testing what a REN command will actually do. 
  8363.  
  8364.     /P:     (Prompt) Prompt the user to confirm each rename operation.  Your 
  8365.             options at the prompt are explained in detail under Page and File 
  8366.             Prompts. 
  8367.  
  8368.     /Q:     (Quiet) Don't display filenames or the number of files renamed. 
  8369.             This option is most often used in batch files.  See also /T. 
  8370.  
  8371.     /S:     (Subdirectory) Normally, you can rename a subdirectory only if you 
  8372.             do not use any wildcards in the new_name.  This prevents 
  8373.             subdirectories from being renamed inadvertently when a group of 
  8374.             files is being renamed with wildcards.  /S will let you rename a 
  8375.             subdirectory even when you use wildcards.  /S does not cause REN to 
  8376.             process files in the current directory and all subdirectories as it 
  8377.             does in some other file processing commands.  To rename files 
  8378.             throughout a directory tree, use a GLOBAL REN. 
  8379.  
  8380.     /T:     (Total) Don't display filenames as they are renamed, but report the 
  8381.             number of files renamed.  See also /Q. 
  8382.  
  8383.  
  8384. ΓòÉΓòÉΓòÉ 6.66. RETURN - Return from a subroutine in a batch file ΓòÉΓòÉΓòÉ
  8385.  
  8386.  Purpose:    Return from a GOSUB (subroutine) in a batch file. 
  8387.  
  8388.  Format:     RETURN [value ] 
  8389.  
  8390.              value :  The exit code from 0 to 255 to return to the command 
  8391.              processor or to the previous batch file. 
  8392.  
  8393.  See also:  GOSUB. 
  8394.  
  8395.  Usage 
  8396.  
  8397.  4OS2 allows subroutines in batch files. 
  8398.  
  8399.  A subroutine begins with a label (a colon followed by a word) and ends with a 
  8400.  RETURN command. 
  8401.  
  8402.  The subroutine is invoked with a GOSUB command from another part of the batch 
  8403.  file.  When a RETURN command is encountered the subroutine terminates, and 
  8404.  execution of the batch file continues on the line following the original 
  8405.  GOSUB.  If RETURN is encountered without a GOSUB, the command processor will 
  8406.  display a "Missing GOSUB" error. 
  8407.  
  8408.  The following batch file fragment calls a subroutine which displays the files 
  8409.  in the current directory: 
  8410.  
  8411.           echo Calling a subroutine
  8412.           gosub subr1
  8413.           echo Returned from the subroutine
  8414.           quit
  8415.  
  8416.           :subr1
  8417.           dir /a/w
  8418.           return
  8419.  
  8420.  If you specify a value, RETURN will set the ERRORLEVEL or exit code to that 
  8421.  value.  For information on exit codes see the IF command, and the %? variable. 
  8422.  
  8423.  
  8424. ΓòÉΓòÉΓòÉ 6.67. SCREEN - Position the cursor and display text ΓòÉΓòÉΓòÉ
  8425.  
  8426.  Purpose:    Position the cursor on the screen and optionally display a 
  8427.              message. 
  8428.  
  8429.  Format:     SCREEN row column [text ] 
  8430.  
  8431.              row :  The new row location for the cursor. 
  8432.              column :  The new column location for the cursor. 
  8433.              text :  Optional text to display at the new cursor location. 
  8434.  
  8435.  See also:  ECHO, SCRPUT, TEXT, and VSCRPUT. 
  8436.  
  8437.  Usage 
  8438.  
  8439.  SCREEN allows you to create attractive screen displays in batch files.  You 
  8440.  use it to specify where a message will appear on the screen.  You can use 
  8441.  SCREEN to create menus and other similar displays.  The following batch file 
  8442.  fragment displays a menu: 
  8443.  
  8444.           @echo off
  8445.           cls
  8446.           screen 3 10  Select a number from 1 to 4:
  8447.           screen 6 20  1 - Word Processing
  8448.           screen 7 20  2 - Spreadsheet
  8449.           screen 8 20  3 - Telecommunications
  8450.           screen 9 20  4 - Quit
  8451.  
  8452.  SCREEN does not change the screen colors.  To display text in specific colors, 
  8453.  use SCRPUT or VSCRPUT.  SCREEN always leaves the cursor at the end of the 
  8454.  displayed text. 
  8455.  
  8456.  The row and column values are zero-based, so on a standard 25 line by 80 
  8457.  column display, valid rows are 0 - 24 and valid columns are 0 - 79.  You can 
  8458.  also specify the row and column as offsets from the current cursor position. 
  8459.  Begin the value with a plus sign [+] to move the cursor down the specified 
  8460.  number of rows or to the right the specified number of columns, or with a 
  8461.  minus sign [-] to move the cursor up or to the left.  This example prints a 
  8462.  string 3 lines above the current position, in absolute column 10: 
  8463.  
  8464.           screen -3 10 Hello, World!
  8465.  
  8466.  If you specify 999 for the row, SCREEN will center the text vertically on the 
  8467.  display.  If you specify 999 for the column, SCREEN will center the text 
  8468.  horizontally.  This example prints a message at the center of the display: 
  8469.  
  8470.           screen 999 999 Hello, World
  8471.  
  8472.  SCREEN checks for a valid row and column, and displays a "Usage" error message 
  8473.  if either value is out of range. 
  8474.  
  8475.  
  8476. ΓòÉΓòÉΓòÉ 6.68. SCRPUT - Display text in color ΓòÉΓòÉΓòÉ
  8477.  
  8478.  Purpose:    Position text on the screen and display it in color. 
  8479.  
  8480.  Format:     SCRPUT row col [BRIght] [BLInk] fg ON [BRIght] bg text 
  8481.  
  8482.              row :  Starting row 
  8483.              col :  Starting column 
  8484.              fg :  Foreground character color 
  8485.              bg :  Background character color 
  8486.              text :  The text to display 
  8487.  
  8488.  See also:  ECHO, SCREEN, TEXT, and VSCRPUT. 
  8489.  
  8490.  Usage 
  8491.  
  8492.  SCRPUT allows you to create attractive screen displays in batch files.  You 
  8493.  use it to specify where a message will appear on the screen and what colors 
  8494.  will be used to display the message text.  You can use SCRPUT to create menu 
  8495.  displays, logos, etc. 
  8496.  
  8497.  SCRPUT works like SCREEN, but requires you to specify the display colors.  See 
  8498.  Colors and Color Names for details about colors and notes on the use of bright 
  8499.  background colors. 
  8500.  
  8501.  The row and column are zero-based, so on a standard 25 line by 80 column 
  8502.  display, valid rows are 0 - 24 and valid columns are 0 - 79.  SCRPUT checks 
  8503.  for a valid row and column, and displays a "Usage" error message if either 
  8504.  value is out of range. 
  8505.  
  8506.  You can also specify the row and column as offsets from the current cursor 
  8507.  position.  Begin the value with a plus sign [+] to move down the specified 
  8508.  number of rows or to the right the specified number of columns, or with a 
  8509.  minus sign [-] to move up or to the left. 
  8510.  
  8511.  If you specify 999 for the row, SCRPUT will center the text vertically on the 
  8512.  display.  If you specify 999 for the column, SCRPUT will center the text 
  8513.  horizontally. 
  8514.  
  8515.  SCRPUT does not move the cursor when it displays the text. 
  8516.  
  8517.  The following batch file fragment displays part of a menu, in color: 
  8518.  
  8519.           cls white on blue
  8520.           scrput 6 20 bri red on blu 1 - Word Processing
  8521.           scrput 7 20 bri yel on blu 2 - Spreadsheet
  8522.           scrput 8 20 bri gre on blu 3 - Communications
  8523.           scrput 9 20 bri mag on blu 4 - Quit
  8524.  
  8525.  
  8526. ΓòÉΓòÉΓòÉ 6.69. SELECT - Select files for a command ΓòÉΓòÉΓòÉ
  8527.  
  8528.  Purpose:    Interactively select files for a command. 
  8529.  
  8530.  Format:     SELECT [/A[[:][-][rhsda]] /D /E /H /I"text" /J /L 
  8531.              /O[:][-]adeginrsu /T:acw /Z] [command ] ... (files ...)... 
  8532.  
  8533.              command :  The command to execute with the selected files. 
  8534.              files :  The files from which to select.  File names may be 
  8535.              enclosed in either parentheses or square brackets.  The difference 
  8536.              is explained below. 
  8537.  
  8538.              /A(ttribute select)             /J(ustify names) 
  8539.              /D(isable color coding)         /L(ower case) 
  8540.              /E (use upper case)             /O(rder) 
  8541.              /H(ide dots)                    /T(ime) 
  8542.              /I (match descriptions)         /Z (use FAT format) 
  8543.  
  8544.  File Selection 
  8545.  
  8546.  Supports extended wildcards, ranges, multiple file names, and include lists. 
  8547.  Ranges must appear immediately after the SELECT keyword. 
  8548.  
  8549.  Usage 
  8550.  
  8551.  SELECT allows you to select files for internal and external commands by using 
  8552.  a full-screen "point and shoot" display.  You can have SELECT execute a 
  8553.  command once for each file you select, or have it create a list of files for a 
  8554.  command to work with.  The command can be an internal command, an alias, an 
  8555.  external command, or a batch file. 
  8556.  
  8557.  If you use parentheses around the files, SELECT executes the command once for 
  8558.  each file you have selected.  During each execution, one of the selected files 
  8559.  is passed to the command as an argument.  If you use square brackets around 
  8560.  files, the SELECTed files are combined into a single list, separated by 
  8561.  spaces.  The command is then executed once with the entire list presented as 
  8562.  part of its command-line arguments. 
  8563.  
  8564.  Using the SELECT File List 
  8565.  
  8566.  When you execute the SELECT command, the file list is displayed in a 
  8567.  full-screen format which includes a top-line status bar and shows the command 
  8568.  to be executed, the number of files marked, and the number of Kbytes in those 
  8569.  files. 
  8570.  
  8571.  SELECT uses the cursor up, cursor down, PgUp, and PgDn keys to scroll through 
  8572.  the file list.  You can also use character matching to find specific files, 
  8573.  just as you can in any popup window.  While the file list is displayed you can 
  8574.  enter any of the following keys to select or unselect files, display files, 
  8575.  execute the command, or exit: 
  8576.  
  8577.  + or space               Select a file, or unselect a marked file. 
  8578.  -                        Unselect a marked file. 
  8579.  *                        Reverse all of the current marks (except those on 
  8580.                           subdirectories).  If no files have been marked you 
  8581.                           can use *  to mark all of the files. 
  8582.  /                        Unselect all files. 
  8583.  Ctrl-L                   View the current highlighted file with LIST  When you 
  8584.                           exit from LIST, the SELECT screen will be restored. 
  8585.  Enter                    Execute the command with the marked files, or with 
  8586.                           the currently highlighted file if no files have been 
  8587.                           marked. 
  8588.  Esc                      Skip the files in the current display and go on to 
  8589.                           the next file specification inside the parentheses or 
  8590.                           brackets (if any). 
  8591.  Ctrl-C or Ctrl-Break     Cancel the current SELECT command entirely. 
  8592.  
  8593.  On FAT drives the file list is shown in standard FAT directory format, with 
  8594.  names at the left an descriptions at the right.  On HPFS drives the format is 
  8595.  similar but more space is allowed for the name, and the description is not 
  8596.  shown.  In this format long names are truncated if they do not fit in the 
  8597.  allowable space.  For a short-name format (including descriptions) on long 
  8598.  filename drives, use the /Z switch. 
  8599.  
  8600.  When displaying descriptions in the short filename format, SELECT adds a right 
  8601.  arrow [] at the end of the line if the description is too long to fit on the 
  8602.  screen.  This symbol will alert you to the existence of additional description 
  8603.  text.  You can use the left and right arrow keys to scroll the description 
  8604.  area of the screen horizontally and view the additional text. 
  8605.  
  8606.  You can display the filenames in color by using the SET command to create an 
  8607.  environment variable called COLORDIR, or using the Commands page of the OPTION 
  8608.  dialogs or a text editor to set the ColorDir directive in your 4OS2.INI file. 
  8609.  If you do not use the COLORDIR variable or the ColorDir directive, SELECT will 
  8610.  use the default screen colors for all files.  See the discussion of 
  8611.  color-coded directories under DIR for more details.  To disable directory 
  8612.  color coding within SELECT, use the /D option. 
  8613.  
  8614.  You can set the default colors used by SELECT on the Commands page of the 
  8615.  OPTION dialogs or with the SelectColors and SelectStatBarColors directives in 
  8616.  the .INI file.  If SelectColors is not used, the SELECT display will use the 
  8617.  current default colors.  If SelectStatBarColors is not used, the status bar 
  8618.  will use the reverse of the SELECT colors. 
  8619.  
  8620.  Creating SELECT Commands 
  8621.  
  8622.  In the simplest form of SELECT, you merely specify the command and then the 
  8623.  list of files from which you will make your selection(s).  For example: 
  8624.  
  8625.           [c:\] select copy (*.com *.exe) a:\
  8626.  
  8627.  will let you select from among the .COM files on the current drive and will 
  8628.  then invoke the COPY command to copy each file you select to drive A:.  After 
  8629.  the .COM files are done, the operations will be repeated for the .EXE files. 
  8630.  
  8631.  If you want to select from a list of all the .COM and .EXE files mixed 
  8632.  together, create an include list inside the parentheses by inserting a 
  8633.  semicolon: 
  8634.  
  8635.           [c:\] select copy (*.com;*.exe) a:\
  8636.  
  8637.  Finally, if you want the SELECT command to send a single list of files to 
  8638.  COPY, instead of invoking COPY once for each file you select, put the file 
  8639.  names in square brackets instead of parentheses: 
  8640.  
  8641.           [c:\] select copy [*.com;*.exe] a:\
  8642.  
  8643.  If you use brackets, you have to be sure that the resulting command (the word 
  8644.  COPY, the list of files, and the destination drive in this example) does not 
  8645.  exceed the command line length limit of 1,023 characters.  The current line 
  8646.  length is displayed by SELECT while you are marking files to help you to 
  8647.  conform to this limit. 
  8648.  
  8649.  The parentheses or brackets enclosing the file name(s) can appear anywhere 
  8650.  within the command; SELECT assumes that the first set of parentheses or 
  8651.  brackets it finds is the one containing the list of files from which you wish 
  8652.  to make your selection. 
  8653.  
  8654.  When you use SELECT on an HPFS drive, you must quote any file names inside the 
  8655.  parentheses which contain whitespace or special characters.  See File Names 
  8656.  for additional details.  For example, to copy selected files from the "Program 
  8657.  Files" directory to the E:\SAVE directory: 
  8658.  
  8659.           [c:\] select copy ("Program Files\*.*") e:\save\
  8660.  
  8661.  File names passed to the command will be quoted automatically if they contain 
  8662.  whitespace or special characters. 
  8663.  
  8664.  The list of files from which you wish to select can be further refined by 
  8665.  using date, time, size, and file exclusion ranges.  The range(s) must be 
  8666.  placed immediately after the word SELECT.  If the command is an internal 
  8667.  command that supports ranges, an independent range can also be used in the 
  8668.  command itself. 
  8669.  
  8670.  You cannot use command grouping to make SELECT execute several commands, 
  8671.  because SELECT will assume that the parentheses are marking the list of files 
  8672.  from which to select, and will display an error message or give incorrect 
  8673.  results if you try to use parentheses for command grouping instead.  (You can 
  8674.  use a SELECT command inside command grouping parentheses, you just can't use 
  8675.  command grouping to specify a group of commands for SELECT to execute.) 
  8676.  
  8677.  Advanced Topics 
  8678.  
  8679.  If you don't specify a command, the selected filename(s) will become the 
  8680.  command.  For example, this command defines an alias called UTILS that selects 
  8681.  from the executable files in the directory C:\UTIL, and then executes them in 
  8682.  the order marked: 
  8683.  
  8684.           [c:\] alias utils select (c:\util\*.com;*.exe;*.btm;*.bat)
  8685.  
  8686.  If you want to use filename completion to enter the filenames inside the 
  8687.  parentheses, type a space after the opening parenthesis.  Otherwise, the 
  8688.  command-line editor will treat the open parenthesis as the first character of 
  8689.  the filename. 
  8690.  
  8691.  With the /I option, you can select files based on their descriptions.  SELECT 
  8692.  will display files if their description matches the text after the /I switch. 
  8693.  The search is not case sensitive.  You can use wildcards and extended 
  8694.  wildcards as part of the text. 
  8695.  
  8696.  When sorting file names and extensions for the SELECT display, 4OS2 normally 
  8697.  assumes that sequences of digits should be sorted numerically (for example, 
  8698.  the file DRAW2 would come before DRAW03 because 2 is numerically smaller than 
  8699.  03), rather than strictly alphabetically (where DRAW2 would come second 
  8700.  because "2" comes after "0").  You can defeat this behavior and force a strict 
  8701.  alphabetic sort with the /O:a option. 
  8702.  
  8703.  Options 
  8704.  
  8705.     /A:     (Attribute select) Select only those files that have the specified 
  8706.             attribute(s) set.  Preceding the attribute character with a hyphen 
  8707.             [-] will select files that do not have that attribute set.  The 
  8708.             colon [:] after /A is optional.  The attributes are: 
  8709.  
  8710.               R  Read-only 
  8711.               H  Hidden 
  8712.               S  System 
  8713.               D  Subdirectory 
  8714.               A  Archive 
  8715.  
  8716.             If no attributes are listed at all (e.g., SELECT /A ...), SELECT 
  8717.             will display all files and subdirectories including hidden and 
  8718.             system files. If attributes are combined, all the specified 
  8719.             attributes must match for a file to be included in the listing. 
  8720.             For example, /A:RHS will display only those files with all three 
  8721.             attributes set. 
  8722.  
  8723.     /D:     (Disable color coding) Temporarily turn off directory color coding 
  8724.             within SELECT. 
  8725.  
  8726.     /E      (use upper case) Display filenames upper case; also see SETDOS /U 
  8727.             and the UpperCase  directive in 4OS2.INI. 
  8728.  
  8729.     /H      (Hide dots) Suppress the display of the "." and ".." directories. 
  8730.  
  8731.     /I      (match descriptions) Display filenames by matching text in their 
  8732.             descriptions.  The text can include wildcards and extended 
  8733.             wildcards.  The search text must be enclosed in quotation marks. 
  8734.             You can select all filenames that have a description with /I"[?]*", 
  8735.             or all filenames that do not have a description with /I"[]". 
  8736.  
  8737.     /J      (Justify names) Justify (align) filename extensions and display 
  8738.             them in the traditional format. 
  8739.  
  8740.     /L      (Lower case) Display file and directory names in lower case; also 
  8741.             see SETDOS /U and the UpperCase directive in 4OS2.INI. 
  8742.  
  8743.     /O:     (Order) Set the sort order for the files.  The order can be any 
  8744.             combination of the following options: 
  8745.  
  8746.               -  Reverse the sort order for the next option. 
  8747.               a  Sort in ASCII order, not numerically, when there are digits in 
  8748.             the name. 
  8749.               d  Sort by date and time (oldest first); for HPFS drives also see 
  8750.             /T. 
  8751.               e  Sort by extension. 
  8752.               g  Group subdirectories first, then files. 
  8753.               i  Sort by file description. 
  8754.               n  Sort by filename (this is the default). 
  8755.               r  Reverse the sort order for all options. 
  8756.               s  Sort by size. 
  8757.               u  Unsorted. 
  8758.  
  8759.     /T:     (Time display) Specify which of the date and time fields on an HPFS 
  8760.             drive should be displayed and used for sorting: 
  8761.  
  8762.               a  last access date and time 
  8763.               c  creation date and time 
  8764.               w  last write date and time (default) 
  8765.  
  8766.     /Z:     Display HPFS filenames in the traditional FAT format, with the 
  8767.             filename at the left and the description at the right. Long names 
  8768.             will be truncated to 12 characters; if the name is longer than 12 
  8769.             characters, it will be followed by a right arrow [] to show that 
  8770.             one or more characters have been truncated. 
  8771.  
  8772.  
  8773. ΓòÉΓòÉΓòÉ 6.70. SET - Create or modify environment variables ΓòÉΓòÉΓòÉ
  8774.  
  8775.  Purpose:    Display, create, modify, or delete environment variables. 
  8776.  
  8777.  Format:     SET [/P /R file ...] [name [=][value ]] 
  8778.  
  8779.              file :  One or more files containing variable definitions. 
  8780.              name :  The name of the environment variable to define or modify. 
  8781.              value :  The new value for the variable. 
  8782.  
  8783.              /P(ause)                        /R(ead from file) 
  8784.  
  8785.  See also:  ESET and UNSET. 
  8786.  
  8787.  Usage 
  8788.  
  8789.  Every program and command inherits an environment, which is a list of variable 
  8790.  names, each of which is followed by an equal sign and some text.  Many 
  8791.  programs use entries in the environment to modify their own actions. 
  8792.  
  8793.  If you simply type the SET command with no options or arguments, it will 
  8794.  display all the names and values currently stored in the environment. 
  8795.  Typically, you will see an entry called COMSPEC, an entry called PATH, an 
  8796.  entry called CMDLINE, and whatever other environment variables you and your 
  8797.  programs have established: 
  8798.  
  8799.           [c:\] set
  8800.           COMSPEC=C:\4OS2\$OS2.EXE
  8801.           PATH=C:\;C:\OS2;C:\OS2\SYSTEM;C:\UTIL
  8802.           CMDLINE=C:\4OS2\4START.CMD
  8803.  
  8804.  To add a variable to the environment, type SET, a space, the variable name, an 
  8805.  equal sign, and the text: 
  8806.  
  8807.           [c:\] set mine=c:\finance\myfiles
  8808.  
  8809.  The variable name is converted to upper case by 4OS2.  The text after the 
  8810.  equal sign will be left just as you entered it.  If the variable already 
  8811.  exists, its value will be replaced with the new text that you entered. 
  8812.  
  8813.  Normally you should not put a space on either side of the equal sign.  A space 
  8814.  before the equal sign will become part of the name ; a space after the equal 
  8815.  sign will become part of the value. 
  8816.  
  8817.  If you use SET to create a variable with the same name as one of the 4OS2 
  8818.  internal variables, you will disable the internal variable.  If you later 
  8819.  execute a batch file or alias that depends on that internal variable, it may 
  8820.  not operate correctly. 
  8821.  
  8822.  To display the contents of a single variable, type SET plus the variable name: 
  8823.  
  8824.           [c:\] set mine
  8825.  
  8826.  You can edit environment variables with the ESET command.  To remove variables 
  8827.  from the environment, use UNSET, or type SET plus a variable name and an equal 
  8828.  sign: 
  8829.  
  8830.           [c:\] set mine=
  8831.  
  8832.  The variable name is limited to a maximum of 80 characters. The name and value 
  8833.  together cannot be longer than 1,023 characters. 
  8834.  
  8835.  In 4OS2 the size of the environment is set automatically, and increased as 
  8836.  necessary as you add variables. 
  8837.  
  8838.  4OS2 supports the "pseudo-variables" BeginLIBPath and EndLIBPath introduced in 
  8839.  OS/2 Warp.  If you use either of these as a variable name, 4OS2 will pass the 
  8840.  library path information from the SET command to the operating system, but the 
  8841.  variables will not appear in the environment.  See your OS/2 documentation for 
  8842.  more information about these "variables". 
  8843.  
  8844.  Options 
  8845.  
  8846.     /P:     (Pause) Wait for a key to be pressed after each screen page before 
  8847.             continuing the display.  Your options at the prompt are explained 
  8848.             in detail under Page and File Prompts. 
  8849.  
  8850.     /R:     (Read) Read environment variables from a file.  This is much faster 
  8851.             than loading variables from a batch file with multiple SET 
  8852.             commands.  Each entry in the file must fit within the 1,023-byte 
  8853.             command-line length limit for 4OS2.  The file is in the same format 
  8854.             as the SET display (i.e., name =value ), so SET /R can accept as 
  8855.             input a file generated by redirecting SET output.  For example, the 
  8856.             following commands will save the environment variables to a file, 
  8857.             and then reload them from that file: 
  8858.  
  8859.                                 set > varlist
  8860.                                 set /r varlist
  8861.  
  8862.             You can load variables from multiple files by listing the filenames 
  8863.             individually after the /R.  You can add comments to a variable file 
  8864.             by starting the comment line with a colon [:]. 
  8865.  
  8866.             If you are creating a SET /R file by hand, and need to create an 
  8867.             entry that spans multiple lines in the file, you can do so by 
  8868.             terminating each line, except the last, with an escape character. 
  8869.             However, you cannot use this method to exceed the command-line 
  8870.             length limit. 
  8871.  
  8872.  
  8873. ΓòÉΓòÉΓòÉ 6.71. SETDOS - Set the 4OS2 configuration ΓòÉΓòÉΓòÉ
  8874.  
  8875.  Purpose:    Display or set the 4OS2 configuration. 
  8876.  
  8877.  Format:     SETDOS [/A? /B? /C? /D? /E? /Fn.n /G?? /I+|- command /L? /M? /N? 
  8878.              /P? /R? /S?:? /U? /V? /X[+|-]n /Y?] 
  8879.  
  8880.              /B(right background)            /N(o clobber) 
  8881.              /C(ompound)                     /P(arameter character) 
  8882.              /D(escriptions)                 /R(ows) 
  8883.              /E(scape character)             /S(hape of cursor) 
  8884.              /F(ormat for @EVAL)             /U(pper case) 
  8885.              /G (numeric separators)         /V(erbose) 
  8886.              /I(nternal commands)            /X (expansion, special characters) 
  8887.              /L(ine)                         /Y (debug batch file) 
  8888.              /M(ode for editing) 
  8889.  
  8890.  Usage 
  8891.  
  8892.  SETDOS allows you to customize certain aspects of 4OS2 to suit your personal 
  8893.  tastes or the configuration of your system.  Each of these options is 
  8894.  described below. 
  8895.  
  8896.  You can display the value of all SETDOS options by entering the SETDOS command 
  8897.  with no parameters. 
  8898.  
  8899.  Most of the SETDOS options can be initialized when 4OS2 executes the 
  8900.  configuration directives in 4OS2.INI, and can also be set on the Command Line 
  8901.  1, Command Line 2, Options 1, or Options 2 pages of the OPTION dialogs.  The 
  8902.  name of the corresponding directive is listed with each option below; if none 
  8903.  is listed, that option cannot be set with OPTION or from the .INI file.  You 
  8904.  can also define the SETDOS options in your AUTOEXEC.BAT, 4START, or other 
  8905.  startup file (see Automatic Batch Files), in aliases, or at the command line. 
  8906.  
  8907.  Secondary shells automatically inherit most configuration settings currently 
  8908.  in effect in the previous shell.  If values have been changed by SETDOS since 
  8909.  4OS2 started, the new values will be passed to the secondary shell. 
  8910.  
  8911.  SETDOS /I settings are not inherited by secondary shells.  If you want to use 
  8912.  SETDOS /I- to disable commands in all shells, place the SETDOS command(s) in 
  8913.  your 4START file, which is executed when any shell starts. 
  8914.  
  8915.  Options 
  8916.  
  8917.     /B:     (Bright background) This option determines whether 4OS2 configures 
  8918.             your video adapter for blinking text (/B0, the default) or bright 
  8919.             background colors (/B1), or leave the video bright / blink 
  8920.             configuration unchanged (/B2).  See Colors and Color Names for a 
  8921.             detailed discussion of this option.  Also see the BrightBG 
  8922.             directive. 
  8923.  
  8924.     /C:     (Compound character) This option sets the character used for 
  8925.             separating multiple commands on the same line.  The default is the 
  8926.             ampersand [&].  You cannot use any of the redirection characters (| 
  8927.             > <), or the blank, tab, comma, or equal sign as the command 
  8928.             separator.  The command separator is saved by SETLOCAL and restored 
  8929.             by ENDLOCAL.  This example changes the separator to a tilde [~]: 
  8930.  
  8931.                                 [c:\] setdos /c~
  8932.  
  8933.             If you want to share batch files or aliases among 4DOS, 4OS2, 4NT, 
  8934.             and Take Command, see the %+ variable, which retrieves the current 
  8935.             command separator, and Special Character Compatibility for details 
  8936.             on using compatible command separators for all the products you 
  8937.             use.  Also see the CommandSep directive. 
  8938.  
  8939.     /D:     (Descriptions) This option controls whether file processing 
  8940.             commands like COPY, DEL, MOVE, and REN process file descriptions 
  8941.             along with the files they belong to.  /D1 turns description 
  8942.             processing on, which is the default.  /D0 turns description 
  8943.             processing off.  Also see the Descriptions directive. 
  8944.  
  8945.             You can also use /D to set the name of the hidden file in each 
  8946.             directory that contains file descriptions.  To do so, follow /D 
  8947.             with the filename in quotes: 
  8948.  
  8949.                                 [c:\] setdos /d"files.bbs"
  8950.  
  8951.             Use this option with caution because changing the name of the 
  8952.             description file will make it difficult to transfer file 
  8953.             descriptions to another system.  This option is provided for 
  8954.             bulletin board system operators and others who have special needs. 
  8955.  
  8956.             Also see the DescriptionName directive. 
  8957.  
  8958.     /E:     (Escape character) This option sets the character used to suppress 
  8959.             the normal meaning of the following character.  Any character 
  8960.             following the escape character will be passed unmodified to the 
  8961.             command.  The default escape character is a caret [^].  You cannot 
  8962.             use any of the redirection characters (| > <) or the blank, tab, 
  8963.             comma, or equal sign as the escape character.  The escape character 
  8964.             is saved by SETLOCAL and restored by ENDLOCAL.  Certain characters 
  8965.             (b, c, e, f, k, n, q, r, s, and t) have special meanings when 
  8966.             immediately preceded by the escape character. 
  8967.  
  8968.             If you want to share batch files or aliases among 4DOS, 4OS2, 4NT, 
  8969.             and Take Command, see the %= variable, which retrieves the current 
  8970.             escape character, and Special Character Compatibility for details 
  8971.             on using compatible escape characters for all the products you use. 
  8972.             Also see the EscapeChar directive. 
  8973.  
  8974.     /F:     (Format for @EVAL) This option lets you set default decimal 
  8975.             precision for the @EVAL variable function. The maximum precision is 
  8976.             16 digits to the left of the decimal point and 8 digits to the 
  8977.             right of the decimal point.  The general form of this option is 
  8978.             /Fx.y, where x sets the minimum number of digits to the right of 
  8979.             the decimal place and y sets the maximum number of digits.  You can 
  8980.             use =x,y instead of =x.y if the comma is your decimal separator. 
  8981.             Both values can range from 0 to 8; if x is greater than y, it is 
  8982.             ignored.  You can specify either or both values:  /F2.5, /F2, and 
  8983.             /F.5 are all valid entries. 
  8984.  
  8985.             See @EVAL if you want to set the precision for a single 
  8986.             computation. 
  8987.  
  8988.             Also see the EvalMax and EvalMin directives. 
  8989.  
  8990.     /G:     (Numeric separators) This option sets the decimal and thousands 
  8991.             separator characters.  The format is /Gxy where x is the new 
  8992.             decimal separator and y is the new thousands separator.  Both 
  8993.             characters must be included.  The only valid settings are /G., 
  8994.             (period is the decimal separator, comma is the thousands 
  8995.             separator); /G,. (the reverse); or /G0 to remove any custom setting 
  8996.             and use the default separators associated with your current country 
  8997.             code (this is the default). 
  8998.  
  8999.             The decimal separator is used for @EVAL, numeric IF and IFF tests, 
  9000.             version numbers, and other similar uses.  The thousands separator 
  9001.             is used for numeric output, and is skipped when performing 
  9002.             calculations in @EVAL. 
  9003.  
  9004.     /I:     (Internal) This option allows you to disable or enable internal 
  9005.             commands.  To disable a command, precede the command name with a 
  9006.             minus [-].  To re-enable a command, precede it with a plus [+]. 
  9007.             For example, to disable the internal LIST command to force 4OS2 to 
  9008.             use an external command: 
  9009.  
  9010.                                 [c:\] setdos /i-list
  9011.  
  9012.  
  9013.     /L:     (Line) This option controls how 4OS2 gets its input from the 
  9014.             command line.  /L0 tells 4OS2 to use character input (the default). 
  9015.             /L1 tells it to use line input (like CMD.EXE ).  /L1 will disable 
  9016.             command-line editing, history recall, filename completion, and the 
  9017.             directory history window, and will reduce the 4OS2 input length 
  9018.             limit from 1023 characters to 255 characters.  It should only be 
  9019.             used if it is needed for compatibility with a specific program.  If 
  9020.             you have a program that requires line input, you can use the 
  9021.             following line in an alias or batch file to change the line input 
  9022.             option just for that single program: 
  9023.  
  9024.                                 setdos /L1 & program %& & setdos /L0
  9025.  
  9026.             See README.DOC for information on programs which require this 
  9027.             option.  Also see the LineInput directive. 
  9028.  
  9029.     /M:     (Mode) This option controls the initial line editing mode.  To 
  9030.             start in overstrike mode at the beginning of each command line, use 
  9031.             /M0 (the default).  To start in insert mode, use /M1.  Also see the 
  9032.             EditMode directive. 
  9033.  
  9034.     /N:     (No clobber) This option controls output redirection).  /N0 means 
  9035.             existing files will be overwritten by output redirection (with >) 
  9036.             and that appending (with >>) does not require the file to exist 
  9037.             already.  This is the default.  /N1 means existing files may not be 
  9038.             overwritten by output redirection, and that when appending the 
  9039.             output file must exist.  A /N1 setting can be overridden with the 
  9040.             [!] character.  If you use /N1, you may have problems with a few 
  9041.             unusual programs that shell out to run a command with redirection, 
  9042.             and expect to be able to overwrite an existing file.  Also see the 
  9043.             NoClobber directive. 
  9044.  
  9045.     /P:     (Parameter character) This option sets the character used after a 
  9046.             percent sign to specify all or all remaining command-line arguments 
  9047.             in a batch file or alias (e.g., %& or %n&.  The default is the 
  9048.             dollar sign [$].  The parameter character is saved by SETLOCAL and 
  9049.             restored by ENDLOCAL. 
  9050.  
  9051.             If you want to share batch files or aliases among 4DOS, 4OS2, 4NT, 
  9052.             and Take Command, see Special Character Compatibility for details 
  9053.             on selecting compatible parameter characters for all the products 
  9054.             you use.  Also see the ParameterChar directive. 
  9055.  
  9056.     /R:     (Rows) This option sets the number of screen rows used by the video 
  9057.             display.  Normally 4OS2 detects the screen size, but if you have a 
  9058.             non-standard display you may need to set it explicitly.  This 
  9059.             option does not affect screen scrolling (which is controlled by 
  9060.             your video driver).  It also does not set the screen size; it is 
  9061.             used only to specify the screen height for LIST, SELECT, paged 
  9062.             output options (i.e., TYPE /P), and error checking in the screen 
  9063.             output commands.  Also see the ScreenRows directive. 
  9064.  
  9065.     /S:     (Shape) This option sets the cursor shape.  The format is /So:i 
  9066.             where o is the cursor size for overstrike mode and i is the cursor 
  9067.             size for insert mode.  The size is entered as a percentage of the 
  9068.             total character height.  The default values are 10:100 (a 10% 
  9069.             underscore cursor for overstrike mode, and a 100% block cursor for 
  9070.             insert mode).  Because of the way video drivers remap the cursor 
  9071.             shape, you may not get a smooth progression in the cursor size from 
  9072.             0% - 100%.  To disable the cursor, enter /S0:0. 
  9073.  
  9074.             If either value is -1, 4OS2 will not attempt to modify the cursor 
  9075.             shape at all.  You can use this feature to give another program 
  9076.             full control of the cursor shape.  You can retrieve the current 
  9077.             cursor shape values with the %_CI and %_CO internal variables. 
  9078.  
  9079.             Also see the CursorOver and CursorIns directives. 
  9080.  
  9081.     /U:     (Upper) This option controls the default case (upper or lower) for 
  9082.             file and directory names displayed by internal commands like COPY 
  9083.             and DIR.  /U0 displays file names in lower case (the default).  /U1 
  9084.             displays file names in the traditional upper case.  The /U setting 
  9085.             is ignored for HPFS filenames.  HPFS names are always displayed in 
  9086.             the case in which they are stored. 
  9087.  
  9088.             Also see the UpperCase directive. 
  9089.  
  9090.     /V:     (Verbose) This option controls the default for command echoing in 
  9091.             batch files.  /V0 disables echoing of batch file commands unless 
  9092.             ECHO is explicitly set ON.  /V1, the default setting, enables 
  9093.             echoing of batch file commands unless ECHO is explicitly set OFF. 
  9094.             Also see the BatchEcho directive. 
  9095.  
  9096.             /V2 forces echoing of all batch file commands, even if ECHO is set 
  9097.             OFF or the line begins with an "@".  This allows you to turn 
  9098.             echoing on for a batch file without editing the batch file and 
  9099.             removing the ECHO OFF command(s) within it.  /V2 is intended for 
  9100.             debugging, and can be set with SETDOS, but not with the OPTION 
  9101.             command or the BatchEcho directive in 4OS2.INI. 
  9102.  
  9103.             For more information on batch file debugging see Debugging Batch 
  9104.             Files and /Y below. 
  9105.  
  9106.     /X[+|-]n:(eXpansion and special characters) This option enables and 
  9107.             disables alias and environment variable expansion, and controls 
  9108.             whether special characters have their usual meaning or are treated 
  9109.             as text.  It is most often used in batch files to process text 
  9110.             strings which may contain special characters. 
  9111.  
  9112.             The features enabled or disabled by /X are numbered.  All features 
  9113.             are enabled when 4OS2 starts, and you can re-enable all features at 
  9114.             any time by using /X0.  To disable a particular feature, use /X-n, 
  9115.             where n is the feature number from the list below.  To re-enable 
  9116.             the feature, use /X+n.  To enable or disable multiple individual 
  9117.             features, list their numbers in sequence after the + or - (e.g. 
  9118.             /X-345 to disable features 3, 4, and 5). 
  9119.  
  9120.             The features are: 
  9121.  
  9122.               1          All alias expansion. 
  9123.               2          Nested alias expansion only. 
  9124.               3          All variable expansion (environment variables and 
  9125.                          batch and alias parameters). 
  9126.               4          Nested variable expansion only. 
  9127.               5          Multiple commands, conditional commands, and piping. 
  9128.               6          Redirection. 
  9129.               7          Quoting (double quotes and back quotes) and square 
  9130.                          brackets. 
  9131.               8          Escape character. 
  9132.  
  9133.             If nested alias expansion is disabled, the first alias of a command 
  9134.             is expanded but any aliases it invokes are not expanded.  If nested 
  9135.             variable expansion is disabled, each variable is expanded once, but 
  9136.             variables containing the names of other variables are not expanded 
  9137.             further. 
  9138.  
  9139.             For example, to disable all features except alias expansion while 
  9140.             you are processing a text file containing special characters: 
  9141.  
  9142.                                 setdos /x-35678
  9143.                                 ... [perform text processing here]
  9144.                                 setdos /x0
  9145.  
  9146.  
  9147.     /Y:     (debug batch file) /Y1 enables the built-in batch file debugger. 
  9148.             The debuggger allows you to "single-step" through a batch file line 
  9149.             by line, with the file displayed in a popup window as it executes. 
  9150.             For complete details on using the debugger see Debugging Batch 
  9151.             Files (this topic also covers additional debugging techniques which 
  9152.             do not require stepping through each line individually). 
  9153.  
  9154.             To start the debugger, insert a SETDOS /Y1 command at the beginning 
  9155.             of the portion of the batch file you want to debug, and a SETDOS 
  9156.             /Y0 command at the end. 
  9157.  
  9158.             You cannot use the batch debugger with REXX files or EXTPROC files. 
  9159.             It can only be used with normal 4OS2 batch files. 
  9160.  
  9161.             You can also invoke SETDOS /Y1 from the prompt, but because the 
  9162.             debugger is automatically turned off whenever the command processor 
  9163.             returns to the prompt, you must enter the SETDOS command and the 
  9164.             batch file name on the same line.  For example: 
  9165.  
  9166.                                 [c:\] setdos /y1 & mybatch.btm
  9167.  
  9168.  
  9169. ΓòÉΓòÉΓòÉ 6.72. SETLOCAL - Save the environment ΓòÉΓòÉΓòÉ
  9170.  
  9171.  Purpose:    Save a copy of the current disk drive, directory, environment, 
  9172.              alias list, and special characters. 
  9173.  
  9174.  Format:     SETLOCAL 
  9175.  
  9176.  See also:  ENDLOCAL. 
  9177.  
  9178.  Usage 
  9179.  
  9180.  SETLOCAL is used in batch files to save the default disk drive and directory, 
  9181.  the environment, the alias list, and the command separator, escape character, 
  9182.  parameter character, decimal separator, and thousands separator.  You can then 
  9183.  change their values and later restore the original values with ENDLOCAL. 
  9184.  
  9185.  For example, this batch file fragment saves everything, removes all aliases so 
  9186.  that user aliases will not affect batch file commands, changes the disk and 
  9187.  directory, changes the command separator, runs a program, and then restores 
  9188.  the original values: 
  9189.  
  9190.           setlocal
  9191.           unalias *
  9192.           cdd d:\test
  9193.           setdos /c~
  9194.           program ~ echo Done!
  9195.           endlocal
  9196.  
  9197.  SETLOCAL and ENDLOCAL are not nestable within a batch file.  However, you can 
  9198.  have multiple, separate SETLOCAL / ENDLOCAL pairs within a batch file, and 
  9199.  nested batch files can each have their own SETLOCAL / ENDLOCAL.  You cannot 
  9200.  use SETLOCAL in an alias or at the command line. 
  9201.  
  9202.  An ENDLOCAL is performed automatically at the end of a batch file if you 
  9203.  forget to do so.  If you invoke one batch file from another without using 
  9204.  CALL, the first batch file is terminated, and an automatic ENDLOCAL is 
  9205.  performed; the second batch file inherits the settings as they were prior to 
  9206.  any SETLOCAL. 
  9207.  
  9208.  
  9209. ΓòÉΓòÉΓòÉ 6.73. SHIFT - Shift batch file parameters ΓòÉΓòÉΓòÉ
  9210.  
  9211.  Purpose:    Allows the use of more than 127 parameters in a batch file. 
  9212.  
  9213.  Format:     SHIFT [n | /n ] 
  9214.  
  9215.              n :  Number of positions to shift. 
  9216.  
  9217.  Usage 
  9218.  
  9219.  SHIFT is provided for compatibility with older batch files, where it was used 
  9220.  to access more than 10 parameters.  4OS2 supports 128 parameters (%0 to %127), 
  9221.  so you may not need to use SHIFT for batch files running exclusively under JP 
  9222.  Software command processors. 
  9223.  
  9224.  SHIFT moves each of the batch file parameters n positions to the left.  The 
  9225.  default value for n is 1.  SHIFT 1 moves the parameter in %1 to position %0, 
  9226.  the parameter in %2 becomes %1, etc.  You can reverse a SHIFT by giving a 
  9227.  negative value for n (i.e., after SHIFT -1, the former %0 is restored, %0 
  9228.  becomes %1, %1 becomes %2, etc.). 
  9229.  
  9230.  SHIFT also affects the parameters %n$. (command-line tail) and %# (number of 
  9231.  command arguments). 
  9232.  
  9233.  For example, create a batch file called TEST.BAT: 
  9234.  
  9235.           echo %1 %2 %3 %4
  9236.           shift
  9237.           echo %1 %2 %3 %4
  9238.           shift 2
  9239.           echo %1 %2 %3 %4
  9240.           shift -1
  9241.           echo %1 %2 %3 %4
  9242.  
  9243.  Executing TEST.BAT produces the following results: 
  9244.  
  9245.           [c:\] test one two three four five six seven
  9246.           one two three four
  9247.           two three four five
  9248.           four five six seven
  9249.           three four five six
  9250.  
  9251.  If you add a slash before the value n, the value determines the postion at 
  9252.  which to begin the shift.  For example: 
  9253.  
  9254.           shift /2
  9255.  
  9256.  leaves parameters %0 and %1 unchanged, and moves the value of %3 to postion 
  9257.  %2, %4 to %3, etc.  The value after the slash cannot be negative, and shifts 
  9258.  performed with the slash cannot be undone later in the batch file. 
  9259.  
  9260.  
  9261. ΓòÉΓòÉΓòÉ 6.74. SHRALIAS - Load or unload SHRALIAS.EXE ΓòÉΓòÉΓòÉ
  9262.  
  9263.  Purpose:    Retains global command history, directory history, and alias lists 
  9264.              in memory when the command processor is not running. 
  9265.  
  9266.  Format:     SHRALIAS [/U] 
  9267.  
  9268.              /U(nload) 
  9269.  
  9270.  Usage 
  9271.  
  9272.  When you close all 4OS2 sessions, the memory for the global command history, 
  9273.  global directory history, and global alias list is released.  If you want the 
  9274.  lists to be retained in memory even when no command processor session is 
  9275.  running, you need to execute SHRALIAS. 
  9276.  
  9277.  The SHRALIAS command starts and initializes SHRALIAS.EXE, a small program 
  9278.  which remains active and retains global lists when 4OS2 is not running.  In 
  9279.  order to start the program, SHRALIAS must be able to find SHRALIAS.EXE either 
  9280.  in the same directory as 4OS2, or in a directory in your PATH.  You cannot run 
  9281.  SHRALIAS.EXE directly, it must be run by the SHRALIAS command. 
  9282.  
  9283.  Once SHRALIAS has been executed, the global lists will be retained in memory 
  9284.  until you use SHRALIAS /U to unload the lists, or until you shut down your 
  9285.  operating system. 
  9286.  
  9287.  SHRALIAS will not work unless you have at least one copy of 4OS2 running with 
  9288.  global alias, command history, and directory history lists enabled.  If the 
  9289.  required global lists are not found, SHRALIAS will display an error. 
  9290.  
  9291.  If you start SHRALIAS from a temporary 4OS2 session which exits after starting 
  9292.  SHRALIAS (for example, by executing SHRALIAS in your OS/2 STARTUP.CMD file), 
  9293.  the command processor session may terminate and discard the shared lists 
  9294.  before SHRALIAS can attach to them.  In this case SHRALIAS.EXE will not be 
  9295.  loaded.  If you experience this problem, add a short delay with the DELAY 
  9296.  command after SHRALIAS is loaded and before your session exits. 
  9297.  
  9298.  For more information about global history and alias lists, see Local and 
  9299.  Global Command History under Command History and Recall, Local and Global 
  9300.  Directory History, and Local and Global Aliases under the ALIAS command. 
  9301.  
  9302.  Options 
  9303.  
  9304.     /U:     (Unload) Shuts down SHRALIAS.EXE.  If SHRALIAS is not loaded again, 
  9305.             the memory used by global command history, directory history, and 
  9306.             alias lists will be released when the last copy of 4OS2 exits. 
  9307.  
  9308.  
  9309. ΓòÉΓòÉΓòÉ 6.75. START - Start a program in another session ΓòÉΓòÉΓòÉ
  9310.  
  9311.  Purpose:    Start a program in another session or window. 
  9312.  
  9313.  Format:     START ["program title "] [/B[G] /C /DOS[=optfile ] /F[G] /FS /I 
  9314.              /ICON=iconfile /INV /K /L /LA /LD /LH /MAX /MIN /N /PGM progname 
  9315.              /PM /POS=x,y,width,height /WAIT /WIN /WIN3[=optfile ] 
  9316.              /WIN3S[=optfile ]] [command ] 
  9317.  
  9318.              program title :  Title to appear on title bar. 
  9319.              optfile :  Option settings file. 
  9320.              iconfile :  Name of icon (.ICO ) file. 
  9321.              progname :  Program name (not the session name). 
  9322.              path :  Startup directory. 
  9323.              command :  Command to be executed. 
  9324.  
  9325.              /B[G] (background session)      /LH (local history list) 
  9326.              /C(lose when done)              /MAX(imized) 
  9327.              /DOS (DOS session)              /MIN(imized) 
  9328.              /F[G] (foreground session)      /N(o command processor) 
  9329.              /FS (full screen)               /PGM (program name) 
  9330.              /I(nherit environment)          /PM (PM application) 
  9331.              /ICON (.ICO file)               /POS(ition of window) 
  9332.              /INV(isible)                    /WAIT (for session to finish) 
  9333.              /K(eep when done)               /WIN(dowed session) 
  9334.              /L(ocal lists)                  /WIN3 (Windows enhanced mode) 
  9335.              /LA (local aliases)             /WIN3S (Windows standard mode) 
  9336.              /LD (local dir history) 
  9337.  
  9338.  See also:  DETACH. 
  9339.  
  9340.  Usage 
  9341.  
  9342.  START is used to begin a new OS/2 session, and optionally run a program in 
  9343.  that session.  If you use START with no parameters, it will begin a new 
  9344.  command-line session.  If you add a command, START will begin a new session or 
  9345.  window and execute that command. 
  9346.  
  9347.  The program title, if it is included, will appear on the title bar, and on the 
  9348.  Presentation Manager window list.  The program title must be enclosed in 
  9349.  quotation marks and cannot exceed 60 characters.  If the program title is 
  9350.  omitted, the program name will be used as the title. 
  9351.  
  9352.  START always assumes that the first quoted string on the command line is the 
  9353.  program title; if there is a second quoted string it is assumed to be the 
  9354.  command.  As a result, if the name of the program you are starting is a long 
  9355.  filename containing whitespace (and must therefore be quoted), you cannot 
  9356.  simply place it on the command line.  If you do, as the first quoted string it 
  9357.  will be interpreted as the program title, not the command.  To address this, 
  9358.  use the /PGM switch to indicate explicitly that the quoted string is the 
  9359.  program name, or include a title before the program name.  For example, to 
  9360.  start the program "C:\Program Files\Proc.Exe" you could use either of the 
  9361.  first two commands below, but the third command would not work: 
  9362.  
  9363.           [c:\] start /PGM "C:\Program Files\Proc.Exe"
  9364.           [c:\] start "test" "C:\Program Files\Proc.Exe"
  9365.           [c:\] start "C:\Program Files\Proc.Exe"
  9366.  
  9367.  START offers a large number of switches to control the session you start.  In 
  9368.  most cases you need only a few switches to accomplish what you want.  The list 
  9369.  below summarizes the most commonly used START options, and how you can use 
  9370.  them to control the way a session is started: 
  9371.  
  9372.         /MAX, /MIN, and /POS allow you to start a character-mode windowed 
  9373.         session in a maximized window, a minimized window, or a window with a 
  9374.         specified position and size.  The default is to let the operating 
  9375.         environment choose the position and size of the window. 
  9376.  
  9377.         /C allows you to close the session when the command is finished (the 
  9378.         default for DOS and OS/2 Presentation Manager sessions); /K allows you 
  9379.         to keep the session open and go to a prompt (the default for OS/2 
  9380.         character mode sessions). 
  9381.  
  9382.         /BG and /FG allow you to start the session in the background(does not 
  9383.         respond to keystrokes until selected) or foreground (responds to 
  9384.         keystrokes until deselected).  /FG is the default if /DOS, /FS, /WIN, 
  9385.         or /PM is used; otherwise, /BG is the default. 
  9386.  
  9387.         /FS and /WIN control whether a character-mode session is started in 
  9388.         full-screen or windowed mode.  The default is to start a session of the 
  9389.         same type as the current session, if the application can be run in such 
  9390.         a session. 
  9391.  
  9392.  START determines the application type automatically and starts the session in 
  9393.  the appropriate mode. 
  9394.  
  9395.  START gives you some flexibility in determining the session mode. For example, 
  9396.  if the command is the name of a batch file (either a .BTM or .CMD file), you 
  9397.  can use the /FS or /WIN options to run the batch file as part of a new session 
  9398.  in either full-screen or windowed mode. 
  9399.  
  9400.  However, you cannot start a session in a mode that is inappropriate for the 
  9401.  application type.  A DOS application cannot be run as part of a Presentation 
  9402.  Manager session, for example, even if you use the /PM switch.  Invalid or 
  9403.  conflicting options will be ignored. 4OS2 will always attempt to run the 
  9404.  command in the appropriate type of session. 
  9405.  
  9406.  If the program is a DOS application or .BAT file, 4OS2 will start a new DOS 
  9407.  session to run it.  The DOS session will close itself automatically as soon as 
  9408.  the program or batch file ends, unless /K is used.  If you want the session to 
  9409.  wait for a keystroke before it closes itself, you can use this syntax 
  9410.  (assuming 4DOS is your command processor for OS/2 DOS sessions: 
  9411.  
  9412.           [c:\] start /DOS command ^^ pause
  9413.  
  9414.  (Because the caret [^] is the default 4OS2 escape character, two carets must 
  9415.  be used in order to pass one on to 4DOS as a command separator.) 
  9416.  
  9417.  If you want to start a DOS command-line session in OS/2, you can use the 
  9418.  command: 
  9419.  
  9420.           [c:\] start /DOS
  9421.  
  9422.  You can specify settings for DOS and Windows sessions by using a settings 
  9423.  options file, and loading it with the /DOS=, /WIN3=, or /WIN3S= option.  This 
  9424.  allows you to start DOS and Windows sessions with specific settings without 
  9425.  creating a desktop object and modifying the settings manually.  Before using 
  9426.  this capability you should read the description of it under /DOS= (below) very 
  9427.  carefully, since errors in the settings file can occasionally hang your 
  9428.  system. 
  9429.  
  9430.  Options 
  9431.  
  9432.     /BG:        (BackGround session) The session is started as a background 
  9433.                 session.  /BG may be abbreviated to /B. 
  9434.  
  9435.     /C:         (Close) The session or window is closed when the application 
  9436.                 ends. 
  9437.  
  9438.     /DOS[=filename]:(DOS session) Start a DOS session. 
  9439.  
  9440.                 If you include the =filename, OS/2 will load DOS settings from 
  9441.                 the specified file.  When you use /DOS you can also alter the 
  9442.                 DOS settings for a session with environment variables of the 
  9443.                 form DosSetting.name=value, without using a settings file. 
  9444.  
  9445.                 Starting a session with specific DOS settings is an 
  9446.                 undocumented feature which was implemented within OS/2 with 
  9447.                 little error checking.  It is included in START because it 
  9448.                 substantially eases a complex task, but you must experiment 
  9449.                 carefully to ensure that the settings you select will work 
  9450.                 properly on the systems on which you plan to use them. 
  9451.                 Incorrect settings may be ignored, but they may also hang your 
  9452.                 session or stop the entire system.  Be sure your experiments 
  9453.                 are not conducted while critical tasks are in process. 
  9454.  
  9455.                 Each line in the file must have a name, an equal sign [=], and 
  9456.                 a value.  The names are those shown in OS/2's DOS Settings 
  9457.                 dialog box.  Do not use spaces on either side of the equal 
  9458.                 sign. 
  9459.  
  9460.                 The names in the DOS Settings dialog box will vary depending on 
  9461.                 the device drivers and other settings in your CONFIG.SYS file, 
  9462.                 though many are available on all systems.  You must ensure that 
  9463.                 the names you use are valid for the systems on which you use 
  9464.                 them.  For example, if you replace IBM's COM.SYS and VCOM.SYS 
  9465.                 with different communications drivers, the COM_ settings will 
  9466.                 probably not be valid for the new drivers.  If you have a 
  9467.                 settings file which contains settings defined by a particular 
  9468.                 driver, and use it on a system where the corresponding driver 
  9469.                 is not loaded, the results are undefined. 
  9470.  
  9471.                 The values in your settings file must be numeric for settings 
  9472.                 which show a numeric value under DOS Settings (e.g., 
  9473.                 DOS_FILES=30), and must be text strings for settings shown with 
  9474.                 a string (e.g., DOS_SHELL=C:\4DOS.COM C:\4DOS /P).  Strings 
  9475.                 should be entered without trailing blanks.  For values shown as 
  9476.                 multiple choice on the DOS Settings page you must specify a 
  9477.                 numeric value, typically 0 for Off and 1 for On (e.g., 
  9478.                 DOS_HIGH=1).  Items with choices other than Off and On may use 
  9479.                 different values, or may not work at all; experimentation is 
  9480.                 usually required to find out what works.  Attempting to use 
  9481.                 strings for choice items (e.g., DOS_HIGH=ON) will not work, and 
  9482.                 can hang your system.  This is due to the internal operation of 
  9483.                 OS/2, and is not a problem in 4OS2. 
  9484.  
  9485.                 A typical DOS settings file might look like this: 
  9486.  
  9487.                                         DOS_FILES=30
  9488.                                         DOS_HIGH=1
  9489.                                         DOS_SHELL=C:\4DOS\4DOS.COM C:\4DOS /P
  9490.                                         MOUSE_EXCLUSIVE_ACCESS=0
  9491.                                         VIDEO_FASTPASTE=1
  9492.  
  9493.                 You can include comments in a settings file by beginning any 
  9494.                 line with a colon [:]. 
  9495.  
  9496.                 When you use /DOS you can also alter the DOS settings for a 
  9497.                 session with environment variables, without using a DOS 
  9498.                 settings file.  When the =filename portion of the switch is not 
  9499.                 used, OS/2 will scan the environment looking for variables of 
  9500.                 the form DosSetting.name=value.  Each such variable entry will 
  9501.                 be used to set the DOS setting with the specified name to the 
  9502.                 specified value.  All of the cautions and restrictions given 
  9503.                 above for settings stored in a file apply equally to settings 
  9504.                 stored in environment variables. 
  9505.  
  9506.                 Settings stored in environment variables are "global" and apply 
  9507.                 to all sessions started with START /DOS, except when an 
  9508.                 explicit settings file is specified with =filename. 
  9509.  
  9510.     /FG:        (ForeGround session) Start the session as the foreground 
  9511.                 session.  /FG may be abbreviated to /F. 
  9512.  
  9513.     /FS:        (Full Screen) Start the session as a full-screen session. 
  9514.  
  9515.     /I:         (Inherit environment) Inherit the default environment specified 
  9516.                 in CONFIG.SYS, if any, rather than the current environment. 
  9517.  
  9518.     /ICON=filename :Use the specified icon file.  If you don't use /ICON, the 
  9519.                 displayed icon will be the one found or assigned by OS/2. 
  9520.  
  9521.     /INV:       (Invisible) Start the session or window as invisible.  No icon 
  9522.                 will appear and the session will only be accessible through the 
  9523.                 Task Manager or Window List. 
  9524.  
  9525.     /K:         (Keep session or window at end) The session or window continues 
  9526.                 after the application program ends.  Use the EXIT command to 
  9527.                 end the session. 
  9528.  
  9529.     /L:         (Local lists) Start 4OS2 with local alias, history, and 
  9530.                 directory history lists.  This option combines the effects of 
  9531.                 /LA, /LD, and /LH (below). 
  9532.  
  9533.     /LA:        (Local Alias list) Start 4OS2 with a local alias list.See ALIAS 
  9534.                 for information on local and global aliases. 
  9535.  
  9536.     /LD:        (Local Directory history) Start 4OS2 with a local directory 
  9537.                 history list.  See Local and Global Directory History for more 
  9538.                 information. 
  9539.  
  9540.     /LH:        (Local History list) Start 4OS2 with a local history list. See 
  9541.                 Command History and Recall for information on local and global 
  9542.                 history lists. 
  9543.  
  9544.     /MAX:       (Maximized) Start the session or window maximized. 
  9545.  
  9546.     /MIN:       (Minimized) Start the session or window minimized. 
  9547.  
  9548.     /N:         (No command processor) Start an OS/2 program directly, without 
  9549.                 a command processor.  The command cannot be an internal command 
  9550.                 or batch file.  This is the default for PM applications. 
  9551.  
  9552.     /PGM:       (Program name) The string following this option is the program 
  9553.                 name.  If you do not use /PGM, the first quoted string on the 
  9554.                 line will be used as the session and task list title, and not 
  9555.                 as the program name. 
  9556.  
  9557.     /PM:        (Presentation Manager) Start a program in the Presentation 
  9558.                 Manager session. 
  9559.  
  9560.     /POS:       (Position) Start the window at the specified screen position. 
  9561.                 The syntax is /POS=x, y, width, height where the values are 
  9562.                 specified in pixels or pels.  x and y refer to the position of 
  9563.                 the top left corner of the window relative to the bottom left 
  9564.                 corner of the screen. 
  9565.  
  9566.     /WAIT:      Wait for the new session or window to finish before continuing. 
  9567.                 Cannot be used with /WIN3 or /WIN3S. 
  9568.  
  9569.     /WIN:       (Windowed) Start the session in a window. 
  9570.  
  9571.     /WIN3[=filename]:(Windows enhanced mode) Run the program in an 
  9572.                 enhanced-mode Windows 3.x session.  The session will run 
  9573.                 seamless (on the OS/2 desktop).  To start a Windows application 
  9574.                 in full-screen mode, use /FS rather than /WIN3.  You can 
  9575.                 include an equal sign and the name of an options file to set 
  9576.                 options for the specific session and application (see /DOS= 
  9577.                 above for details). 
  9578.  
  9579.     /WIN3S[=filename]:(Windows standard mode) Equivalent to /WIN3, but runs the 
  9580.                 program in standard mode rather than enhanced mode. 
  9581.  
  9582.  
  9583. ΓòÉΓòÉΓòÉ 6.76. SWITCH - Select commands based on a value ΓòÉΓòÉΓòÉ
  9584.  
  9585.  Purpose:    Select commands to execute based on a value. 
  9586.  
  9587.  Format:     SWITCH expression 
  9588.              CASE value1 [.OR. value2 ] ... 
  9589.                 commands 
  9590.              CASE value3 
  9591.                 commands 
  9592.              DEFAULT 
  9593.                 commands ] 
  9594.              ENDSWITCH 
  9595.  
  9596.              expression :  An environment variable, internal variable, variable 
  9597.              function, text string, or a combination of these elements, that is 
  9598.              used to select a group of commands. 
  9599.              value1, value2, etc. :  A value to test, or multiple values 
  9600.              connected with .OR. 
  9601.              commands :  One or more commands to execute if the expression 
  9602.              matches the value.  If you use multiple commands, they must be 
  9603.              separated by command separators or placed on separate lines. 
  9604.  
  9605.  See also:  IF and IFF. 
  9606.  
  9607.  Usage 
  9608.  
  9609.  SWITCH can only be used in batch files.  It allows you to select a command or 
  9610.  group of commands to execute based on the possible values of a variable or a 
  9611.  combination of variables and text. 
  9612.  
  9613.  The SWITCH command is always followed by an expression created from 
  9614.  environment variables, internal variables, variable functions, and text 
  9615.  strings, and then by a sequence of CASE statements matching the possible 
  9616.  values of the expression.  If one of the values in a CASE statement matches 
  9617.  the expression, the commands following that CASE statement are executed, and 
  9618.  all subsequent CASE statements and the commands which follow them are ignored. 
  9619.  If no matches are found, the commands following the optional DEFAULT statement 
  9620.  are executed.  If there are no matches and there is no DEFAULT statement, no 
  9621.  commands are executed by SWITCH. 
  9622.  
  9623.  After all of the commands following the CASE or DEFAULT statement are 
  9624.  executed, the batch file continues with the commands that follow ENDSWITCH. 
  9625.  
  9626.  You must include a command separator or new line after the expression, before 
  9627.  each CASE or DEFAULT statement, before each command, and before ENDSWITCH. 
  9628.  You can link values in a CASE statement with .OR. (but not with .AND. or 
  9629.  .XOR.). 
  9630.  
  9631.  For example, the following batch file fragment displays one message if the 
  9632.  user presses A, another if user presses B or C, and a third if the user 
  9633.  presses any other key: 
  9634.  
  9635.           inkey Enter a keystroke: %%key
  9636.           switch %key
  9637.           case A
  9638.              echo It's an A
  9639.           case B .or. C
  9640.              echo It's either B or C
  9641.           default
  9642.              echo It's not A, B, or C
  9643.           endswitch
  9644.  
  9645.  In the example above, the value of a single environment variable was used for 
  9646.  the expression.  You will probably find that this is the best method to use in 
  9647.  most situations.  However, you can use other kinds of expressions if 
  9648.  necessary.  The first example below selects a command to execute based on the 
  9649.  length of a variable, and the second bases the action on a quoted text string 
  9650.  stored in an environment variable: 
  9651.  
  9652.           switch %@len[%var1]
  9653.           case 0
  9654.              echo Missing var1
  9655.           case 1
  9656.              echo Single character
  9657.           ...
  9658.           endswitch
  9659.  
  9660.           switch "%string1"
  9661.           case "This is a test"
  9662.              echo Test string
  9663.           case "The quick brown fox"
  9664.              echo It's the fox
  9665.           ...
  9666.           endswitch
  9667.  
  9668.  The SWITCH and ENDSWITCH commands must be on separate lines, and cannot be 
  9669.  placed within a command group, or on the same line as other commands (this is 
  9670.  the reason SWITCH cannot be used in aliases).  However, commands within the 
  9671.  SWITCH block can use command groups or the command separator in the normal 
  9672.  way. 
  9673.  
  9674.  SWITCH commands can be nested.  You can exit from all SWITCH / ENDSWITCH 
  9675.  processing by using GOTO to a line past the last ENDSWITCH. 
  9676.  
  9677.  
  9678. ΓòÉΓòÉΓòÉ 6.77. TEE - "Tee" pipe fitting ΓòÉΓòÉΓòÉ
  9679.  
  9680.  Purpose:    Copy standard input to both standard output and a file. 
  9681.  
  9682.  Format:     TEE [/A] file ... 
  9683.  
  9684.              file :  One or more files that will receive the "tee-d" output. 
  9685.  
  9686.              /A(ppend) 
  9687.  
  9688.  See also:  Y and the redirection options. 
  9689.  
  9690.  Usage 
  9691.  
  9692.  TEE is normally used to "split" the output of a program so that you can see it 
  9693.  on the display and also save it in a file.  It can also be used to capture 
  9694.  intermediate output before the data is altered by another program or command. 
  9695.  
  9696.  TEE gets its input from standard input (usually the piped output of another 
  9697.  command or program), and sends out two copies:  one goes to standard output, 
  9698.  the other to the file or files that you specify.  TEE is not likely to be 
  9699.  useful with programs which do not use standard output, because these programs 
  9700.  cannot send output through a pipe. 
  9701.  
  9702.  For example, to search the file DOC for any lines containing the string 
  9703.  "4OS2", make a copy of the matching lines in 4.DAT, sort the lines, and write 
  9704.  them to the output file 4O.DAT : 
  9705.  
  9706.           [c:\] find "4OS2" doc | tee 4.dat | sort > 4o.dat
  9707.  
  9708.  If you are typing at the keyboard to produce the input for TEE, you must enter 
  9709.  a Ctrl-Z to terminate the input. 
  9710.  
  9711.  When using TEE with a pipe under 4OS2, the programs on the two ends of the 
  9712.  pipe run simultaneously, not sequentially as in 4DOS. 
  9713.  
  9714.  See Piping for more information on pipes. 
  9715.  
  9716.  Options 
  9717.  
  9718.     /A:     (Append) Append the output to the file(s) rather than overwriting 
  9719.             them. 
  9720.  
  9721.  
  9722. ΓòÉΓòÉΓòÉ 6.78. TEXT - Display text in a batch file ΓòÉΓòÉΓòÉ
  9723.  
  9724.  Purpose:    Display a block of text in a batch file. 
  9725.  
  9726.  Format:     TEXT 
  9727.                 . 
  9728.                 . 
  9729.                 . 
  9730.              ENDTEXT 
  9731.  
  9732.  See also:  ECHO, SCREEN, SCRPUT, and VSCRPUT. 
  9733.  
  9734.  Usage 
  9735.  
  9736.  TEXT can only be used in batch files. 
  9737.  
  9738.  The TEXT command is useful for displaying menus or multi-line messages.  TEXT 
  9739.  will display all subsequent lines in the batch file until terminated by 
  9740.  ENDTEXT.  Both TEXT and ENDTEXT must be entered as the only command on the 
  9741.  line. 
  9742.  
  9743.  To redirect the entire block of text, use redirection on the TEXT command 
  9744.  itself, but not on the actual text lines or the ENDTEXT line.  No environment 
  9745.  variable expansion or other processing is performed on the lines between TEXT 
  9746.  and ENDTEXT; they are displayed exactly as they are stored in the batch file. 
  9747.  
  9748.  You can change screen colors by inserting ANSI escape sequences anywhere in 
  9749.  the text block.  You can also use a CLS or COLOR command to set the screen 
  9750.  color before executing the TEXT command. 
  9751.  
  9752.  The following batch file fragment displays a simple menu: 
  9753.  
  9754.           @echo off & cls
  9755.           screen 2 0
  9756.           text
  9757.           Enter one of the following:
  9758.              1 - Spreadsheet
  9759.              2 - Word Processing
  9760.              3 - Utilities
  9761.              4 - Exit
  9762.           endtext
  9763.           inkey /k"1243" Enter your selection:  %%key
  9764.  
  9765.  
  9766. ΓòÉΓòÉΓòÉ 6.79. TIME - Set the system time ΓòÉΓòÉΓòÉ
  9767.  
  9768.  Purpose:    Display or set the current system time. 
  9769.  
  9770.  Format:     TIME [hh [:mm [:ss ]]] [AM | PM] 
  9771.  
  9772.              hh :  The hour (0 - 23). 
  9773.              mm :  The minute (0 - 59). 
  9774.              ss :  The second (0 - 59). 
  9775.  
  9776.  See also:  DATE. 
  9777.  
  9778.  Usage 
  9779.  
  9780.  If you don't enter any parameters, TIME will display the current system time 
  9781.  and prompt you for a new time.  Press Enter if you don't wish to change the 
  9782.  time; otherwise, enter the new time: 
  9783.  
  9784.           [c:\] time
  9785.           Mon  Dec 22, 1997  9:30:06
  9786.           New time (hh:mm:ss):
  9787.  
  9788.  TIME defaults to 24-hour format, but you can optionally enter the time in 
  9789.  12-hour format by appending "a", "am", "p", or "pm" to the time you enter. 
  9790.  
  9791.  For example, to enter the time as 9:30 am: 
  9792.  
  9793.           [c:\] time 9:30 am
  9794.  
  9795.  OS/2 adds the system time and date to the directory entry for every file you 
  9796.  create or modify.  If you keep both the time and date accurate, you will have 
  9797.  a record of when you last updated each file. 
  9798.  
  9799.  
  9800. ΓòÉΓòÉΓòÉ 6.80. TIMER - Start or stop a stopwatch ΓòÉΓòÉΓòÉ
  9801.  
  9802.  Purpose:    TIMER is a system stopwatch. 
  9803.  
  9804.  Format:     TIMER [ON] [/1 /2 /3 /S] 
  9805.  
  9806.              ON :  Force the stopwatch to restart. 
  9807.  
  9808.              /1 (stopwatch #1)               /3 (stopwatch #3) 
  9809.              /2 (stopwatch #2)               /S(plit) 
  9810.  
  9811.  Usage 
  9812.  
  9813.  The TIMER command turns a system stopwatch on and off.  When you first run 
  9814.  TIMER, the stopwatch starts: 
  9815.  
  9816.           [c:\] timer
  9817.           Timer 1 on:  12:21:46
  9818.  
  9819.  When you run TIMER again, the stopwatch stops and the elapsed time is 
  9820.  displayed: 
  9821.  
  9822.           [c:\] timer
  9823.           Timer 1 off:  12:21:58   Elapsed time: 0:00:12.06
  9824.  
  9825.  There are three stopwatches available (1, 2, and 3) so you can time multiple 
  9826.  overlapping events.  By default, TIMER uses stopwatch #1. 
  9827.  
  9828.  The smallest interval TIMER can measure depends on the operating system you 
  9829.  are using, your hardware, and the interaction between the two.  However, it 
  9830.  should never be greater than .06 second.  The largest interval is 23 hours, 59 
  9831.  minutes, 59.99 seconds. 
  9832.  
  9833.  Options 
  9834.  
  9835.     /1:     Use timer #1 (the default). 
  9836.  
  9837.     /2:     Use timer #2. 
  9838.  
  9839.     /3:     Use timer #3. 
  9840.  
  9841.     /S:     (Split) Display a split time without stopping the timer.  To 
  9842.             display the current elapsed time but leave the timer running: 
  9843.  
  9844.                                 [c:\] timer /s
  9845.                                 Timer 1 elapsed: 0:06:40.63
  9846.  
  9847.     ON:     Start the timer regardless of its previous state (on or off). 
  9848.             Otherwise the TIMER command toggles the timer state (unless /S is 
  9849.             used). 
  9850.  
  9851.  
  9852. ΓòÉΓòÉΓòÉ 6.81. TITLE - Window title ΓòÉΓòÉΓòÉ
  9853.  
  9854.  Purpose:    Change the window title. 
  9855.  
  9856.  Format:     TITLE title 
  9857.  
  9858.              title :  The new window title. 
  9859.  
  9860.  See also:  ACTIVATE and WINDOW. 
  9861.  
  9862.  Usage 
  9863.  
  9864.  TITLE changes the text that appears in the caption bar at the top of the 4OS2 
  9865.  window. 
  9866.  
  9867.  The title text should not be enclosed in quotes unless you want the quotes to 
  9868.  appear as part of the actual title. 
  9869.  
  9870.  To change the title of the current window to "JP Software / 4OS2": 
  9871.  
  9872.           [c:\] title JP Software / 4OS2
  9873.  
  9874.  
  9875. ΓòÉΓòÉΓòÉ 6.82. TOUCH - Change date and time stamps ΓòÉΓòÉΓòÉ
  9876.  
  9877.  Purpose:    Change a file's date and time stamps. 
  9878.  
  9879.  Format:     TOUCH [/C /D[acw][mm-dd-yy] /E /F /Q /T[acw][hh:mm]] file ... 
  9880.  
  9881.              file :  One or more files whose date and/or time stamps are to be 
  9882.              changed. 
  9883.  
  9884.              /C(reate file)                  /F(orce read-only files) 
  9885.              /D(ate)                         /Q(uiet) 
  9886.              /E (no Error messages)          /T(ime) 
  9887.  
  9888.  See also:  LIST. 
  9889.  
  9890.  File Selection 
  9891.  
  9892.  Supports extended wildcards, ranges, multiple file names, and include lists. 
  9893.  
  9894.  Usage 
  9895.  
  9896.  TOUCH is used to change the date and/or time of a file.  You can use it to be 
  9897.  sure that particular files are included or excluded from an internal command, 
  9898.  backup program, compiler MAKE utility, or other program that selects files 
  9899.  based on their time and date stamps, or to set a group of files to the same 
  9900.  date and time for consistency. 
  9901.  
  9902.  TOUCH should be used with caution, and in most cases should only be used on 
  9903.  files you create.  Many programs depend on file dates and times to perform 
  9904.  their work properly.  In addition, many software manufacturers use file dates 
  9905.  and times to signify version numbers.  Indiscriminate changes to date and time 
  9906.  stamps can lead to confusion or incorrect behavior of other software. 
  9907.  
  9908.  TOUCH normally works with existing files, and will display an error if the 
  9909.  file you specify does not exist, or has the read-only attribute set.  To 
  9910.  create the file if it does not already exist, use the /C switch.  To force a 
  9911.  date and time change for read-only files, use the /F switch. 
  9912.  
  9913.  TOUCH displays the date, time, and full name of each file whose timestamp is 
  9914.  modified.  To disable this output, use /Q. 
  9915.  
  9916.  If you don't specify a date or a time, TOUCH will default to the current date 
  9917.  and time from your system clock.  For example, to set the time stamp of all .C 
  9918.  files in the current directory to the current date and time: 
  9919.  
  9920.           [d:\source] touch *.c
  9921.            6-12-97 11:13:58  D:\SOURCE\MAIN.C
  9922.            6-12-97 11:13:58  D:\SOURCE\INIT.C
  9923.            ...
  9924.  
  9925.  If you specify a date but not a time, the time will default to the current 
  9926.  time from your system clock.  Similarly, if you specify a time but not a date, 
  9927.  the date will be obtained from the system clock. 
  9928.  
  9929.  On HPFS files, TOUCH sets the "modified" or "last write" date and time by 
  9930.  default.  By adding the appropriate character to the /D or /T switch, you can 
  9931.  set the other date and time stamps that are maintained for each file: 
  9932.  
  9933.     a       last access date and time. 
  9934.     c       creation date and time 
  9935.     w       last write date and time (default) 
  9936.  
  9937.  Options 
  9938.  
  9939.     /C:     (Create file) Create the file (as a zero-byte file) if it does not 
  9940.             already exist.  You cannot use wildcards with /C, but you can 
  9941.             create multiple files by listing them individually on the command 
  9942.             line. 
  9943.  
  9944.     /D:     (Date) Specify the date that will be set for the selected files. 
  9945.             If the date is not specified, TOUCH will use the current date.  For 
  9946.             HPFS files you can use /Da, /Dc, or /Dw, followed by the date, to 
  9947.             explicitly specify the last access, creation, or last write date 
  9948.             stamp.  The date must be entered using the proper format for your 
  9949.             current country settings. 
  9950.  
  9951.     /E:     (No error messages) Suppress all non-fatal error messages, such as 
  9952.             "File not found."  Fatal error messages, such as "Drive not ready," 
  9953.             will still be displayed.  This option is most useful in batch 
  9954.             files. 
  9955.  
  9956.     /F:     (Force read-only files) Remove the read-only attribute from each 
  9957.             file before changing the date and time, and restore it afterwards. 
  9958.             Without /F, attempting to change the date and time on a read-only 
  9959.             file will usually cause an error. 
  9960.  
  9961.     /Q:     (Quiet) Do not dislpy the new date and time and the full name for 
  9962.             each file. 
  9963.  
  9964.     /T:     (Time) Specify the time that will be set for the selected files, in 
  9965.             hh:mm format.  If the time is not specified, TOUCH will use the 
  9966.             current time.  For HPFS files you can use /Ta, /Tc, or /Tw, 
  9967.             followed by the time, to explicitly specify the last access, 
  9968.             creation, or last write time stamp. 
  9969.  
  9970.  
  9971. ΓòÉΓòÉΓòÉ 6.83. TREE - Directory tree ΓòÉΓòÉΓòÉ
  9972.  
  9973.  Purpose:    Display a graphical directory tree. 
  9974.  
  9975.  Format:     TREE [/A /B /F /H /P /S /T[:acw]] dir ... 
  9976.  
  9977.              dir :  The directory to use as the start of the tree.  If more 
  9978.              than one directory is specified, TREE will display a directory 
  9979.              tree for each. 
  9980.  
  9981.              /A:(SCII)                       /P(ause) 
  9982.              /B:(are)                        /S (file Size) 
  9983.              /F:(iles)                       /T(ime and date) 
  9984.              /H:(idden directories) 
  9985.  
  9986.  File Selection 
  9987.  
  9988.  Supports extended wildcards, ranges, multiple file names, and include lists. 
  9989.  
  9990.  Usage 
  9991.  
  9992.  The TREE command displays a graphical representation of the directory tree 
  9993.  using standard or extended ASCII characters.  For example, to display the 
  9994.  directory structure on drive C: 
  9995.  
  9996.           [c:\] tree c:\
  9997.  
  9998.  You can print the display, save it in a file, or view it with LIST by using 
  9999.  standard redirection symbols.  Be sure to review the /A option before 
  10000.  attempting to print the TREE output.  The options, discussed below, specify 
  10001.  the amount of information included in the display. 
  10002.  
  10003.  Options 
  10004.  
  10005.     /A:     (ASCII) Display the tree using standard ASCII characters.  You can 
  10006.             use this option if you want to save the directory tree in a file 
  10007.             for further processing or print the tree on a printer which does 
  10008.             not support the graphical symbols that TREE normally uses. 
  10009.  
  10010.     /B:     (Bare) Display the full pathname of each directory, without any of 
  10011.             the line-drawing characters. 
  10012.  
  10013.     /F:     (Files) Display files as well as directories.  If you use this 
  10014.             option, the name of each file is displayed beneath the name of the 
  10015.             directory in which it resides. 
  10016.  
  10017.     /H:     (Hidden) Display hidden as well as normal directories.  If you 
  10018.             combine /H and /F, hidden files are also displayed. 
  10019.  
  10020.     /P:     (Pause) Wait for a key to be pressed after each screen page before 
  10021.             continuing the display.  Your options at the prompt are explained 
  10022.             in detail under Page and File Prompts. 
  10023.  
  10024.     /S:     (Size) Display the size of each file.  This option is only useful 
  10025.             when combined with /F. 
  10026.  
  10027.     /T:     (Time and date) Display the time and date for each directory.  If 
  10028.             you combine /T and /F, the time and date for each file will also be 
  10029.             displayed.  For HPFS files, the time and date of the last write 
  10030.             will be shown by default.  You can select a specific time and date 
  10031.             stamp by using the following variations of /T: 
  10032.  
  10033.                          /T:a  last access date and time. 
  10034.                          /T:c  creation date and time. 
  10035.                          /T:w  last write date and time (default). 
  10036.  
  10037.  
  10038. ΓòÉΓòÉΓòÉ 6.84. TYPE - Display file(s) ΓòÉΓòÉΓòÉ
  10039.  
  10040.  Purpose:    Display the contents of the specified file(s). 
  10041.  
  10042.  Format:     TYPE [/A:[[-]rhsda] /L /P] file ... 
  10043.  
  10044.              file :  The file or list of files that you want to display. 
  10045.  
  10046.              /A: (Attribute select)          /P(ause) 
  10047.              /L(ine numbers) 
  10048.  
  10049.  See also:  LIST. 
  10050.  
  10051.  File Selection 
  10052.  
  10053.  Supports extended wildcards, ranges, multiple file names, and include lists. 
  10054.  
  10055.  Usage 
  10056.  
  10057.  The TYPE command displays a file.  It is normally only useful for displaying 
  10058.  ASCII text files.  Executable files (.COM and .EXE ) and many data files may 
  10059.  be unreadable when displayed with TYPE because they include non-alphanumeric 
  10060.  characters. 
  10061.  
  10062.  To display the files MEMO1 and MEMO2 : 
  10063.  
  10064.           [c:\] type /p memo1 memo2
  10065.  
  10066.  You can press Ctrl-S to pause TYPE's display and then any key to continue. 
  10067.  
  10068.  To display text from the clipboard, use CLIP: as the file name.  CLIP: will 
  10069.  not return any data unless the clipboard contains text.  See Redirection for 
  10070.  additional information on CLIP:. 
  10071.  
  10072.  You will probably find LIST to be more useful for displaying files.  However, 
  10073.  the TYPE /L command used with redirection is useful if you want to add line 
  10074.  numbers to a file, for example: 
  10075.  
  10076.           [c:\] type /l myfile > myfile.num
  10077.  
  10078.  Options 
  10079.  
  10080.     /A::    (Attribute select) Select only those files that have the specified 
  10081.             attribute(s) set.  Preceding the attribute character with a hyphen 
  10082.             [-] will select files that do not have that attribute set.  The 
  10083.             colon [:] after /A is required.  The attributes are: 
  10084.  
  10085.                            R  Read-only 
  10086.                            H  Hidden 
  10087.                            S  System 
  10088.                            D  Subdirectory 
  10089.                            A  Archive 
  10090.  
  10091.             If no attributes are listed at all (e.g., TYPE /A: ...), TYPE will 
  10092.             select all files and subdirectories including hidden and system 
  10093.             files.  If attributes are combined, all the specified attributes 
  10094.             must match for a file to be selected. For example, /A:RHS will 
  10095.             select only those files with all three attributes set. 
  10096.  
  10097.     /L:     (Line numbers) Display a line number preceding each line of text. 
  10098.  
  10099.     /P:     (Pause) Prompt after displaying each page.  Your options at the 
  10100.             prompt are explained in detail under Page and File Prompts. 
  10101.  
  10102.  
  10103. ΓòÉΓòÉΓòÉ 6.85. UNALIAS - Remove aliases ΓòÉΓòÉΓòÉ
  10104.  
  10105.  Purpose:    Remove aliases from the alias list. 
  10106.  
  10107.  Format:     UNALIAS [/Q /R file ] [alias ...] 
  10108.                 or 
  10109.              UNALIAS * 
  10110.  
  10111.              alias :  One or more aliases to remove from memory. 
  10112.              file :  One or more files to read for alias definitions. 
  10113.  
  10114.              /Q(uiet)                        /R(ead file) 
  10115.  
  10116.  See also:  ALIAS and ESET. 
  10117.  
  10118.  Usage 
  10119.  
  10120.  4OS2 maintains a list of the aliases that you have defined.  The UNALIAS 
  10121.  command will remove aliases from that list.  You can remove one or more 
  10122.  aliases by name, or you can delete the entire alias list by using the command 
  10123.  UNALIAS *. 
  10124.  
  10125.  For example, to remove the alias DDIR: 
  10126.  
  10127.           [c:\] unalias ddir
  10128.  
  10129.  To remove all the aliases: 
  10130.  
  10131.           [c:\] unalias *
  10132.  
  10133.  If you keep aliases in a file that can be loaded with the ALIAS /R command, 
  10134.  you can remove the aliases by using the UNALIAS /R command with the same file 
  10135.  name: 
  10136.  
  10137.           [c:\] unalias /r alias.lst
  10138.  
  10139.  This is much faster than removing each alias individually in a batch file, and 
  10140.  can be more selective than using UNALIAS *. 
  10141.  
  10142.  Options 
  10143.  
  10144.     /Q:     (Quiet) Prevents UNALIAS from displaying an error message if one or 
  10145.             more of the aliases does not exist.  This option is most useful in 
  10146.             batch files, for removing a group of aliases when some of the 
  10147.             aliases may not have been defined. 
  10148.  
  10149.     /R:     (Read) Read the list of aliases to remove from a file.  The file 
  10150.             format should be the same format as that used by the ALIAS /R 
  10151.             command.  You can use multiple files with one UNALIAS /R command by 
  10152.             placing the names on the command line, separated by spaces: 
  10153.  
  10154.                                 [c:\] unalias /r alias1.lst alias2.lst
  10155.  
  10156.  
  10157. ΓòÉΓòÉΓòÉ 6.86. UNSET - Remove environment variables ΓòÉΓòÉΓòÉ
  10158.  
  10159.  Purpose:    Remove variables from the environment. 
  10160.  
  10161.  Format:     UNSET  [/Q /R file ] name ... 
  10162.                 or 
  10163.              UNSET * 
  10164.  
  10165.              name :  One or more variables to remove. 
  10166.              file :  One or more files containing variables definitions. 
  10167.  
  10168.              /M(uiet)                        /R(ead from file) 
  10169.              /Q(uiet) 
  10170.  
  10171.  See also:  ESET and SET. 
  10172.  
  10173.  Usage 
  10174.  
  10175.  UNSET removes one or more variables from the environment.  For example, to 
  10176.  remove the variable CMDLINE: 
  10177.  
  10178.           [c:\] unset cmdline
  10179.  
  10180.  If you use the command UNSET *, all of the environment variables will be 
  10181.  deleted: 
  10182.  
  10183.           [c:\] unset *
  10184.  
  10185.  UNSET can be used in a batch file, in conjunction with the SETLOCAL and 
  10186.  ENDLOCAL commands, to clear the environment of variables that may cause 
  10187.  problems for applications run from that batch file. 
  10188.  
  10189.  For more information on environment variables, see the SET command and the 
  10190.  general discussion of the environment. 
  10191.  
  10192.  Use caution when removing environment variables, and especially when using 
  10193.  UNSET *.  Many programs will not work properly without certain environment 
  10194.  variables; for example, 4OS2 uses PATH and DPATH. 
  10195.  
  10196.  Options 
  10197.  
  10198.     /Q:     (Quiet) Prevents UNSET from displaying an error message if one or 
  10199.             more of the variables does not exist.  This option is most useful 
  10200.             in batch files, for removing a group of variables when some of the 
  10201.             variables may not have been defined. 
  10202.  
  10203.     /R:     (Read) Read environment variables to UNSET from a file.  This much 
  10204.             faster than using multiple UNSET commands in a batch file, and can 
  10205.             be more selective than UNSET *.  The file format should be the same 
  10206.             format as that used by the SET /R command. 
  10207.  
  10208.  
  10209. ΓòÉΓòÉΓòÉ 6.87. VER - Display the 4OS2 and OS/2 version ΓòÉΓòÉΓòÉ
  10210.  
  10211.  Purpose:    Display the current command processor and operating system 
  10212.              versions. 
  10213.  
  10214.  Format:     VER [/R] 
  10215.  
  10216.              /R(evision level) 
  10217.  
  10218.  Usage 
  10219.  
  10220.  Version numbers consist of a one-digit major version number, a period, and a 
  10221.  one- or two-digit minor version number.  Ver uses the default decimal 
  10222.  separator defined by the current country information.  The VER command 
  10223.  displays both version numbers: 
  10224.  
  10225.           [c:\] ver
  10226.  
  10227.           4OS2 3.02A   OS/2 Version is 4.00
  10228.  
  10229.  Options 
  10230.  
  10231.     /R:     (Revision level) Display the 4OS2 and OS/2 internal revision levels 
  10232.             (if any), plus your 4OS2 serial number and registered name. 
  10233.  
  10234.  
  10235. ΓòÉΓòÉΓòÉ 6.88. VERIFY - Enable or disable disk write verification ΓòÉΓòÉΓòÉ
  10236.  
  10237.  Purpose:    Enable or disable disk write verification or display the 
  10238.              verification state. 
  10239.  
  10240.  Format:     VERIFY [ON | OFF] 
  10241.  
  10242.  Usage 
  10243.  
  10244.  OS/2 maintains an internal verify flag.  When the flag is on, OS/2 attempts to 
  10245.  verify each disk write by making sure that the data written to the disk can be 
  10246.  read back successfully into the computer.  It does not compare the data in 
  10247.  memory with the data actually placed on disk to fully verify the disk write 
  10248.  process. 
  10249.  
  10250.  If used without any parameters, VERIFY will display the state of the verify 
  10251.  flag: 
  10252.  
  10253.           [c:\] verify
  10254.           VERIFY is OFF
  10255.  
  10256.  VERIFY is off when the system boots up.  Once it is turned on with the VERIFY 
  10257.  ON command, it stays on until you use the VERIFY OFF command or until you 
  10258.  reboot. 
  10259.  
  10260.  Verification will slow your disk write operations slightly (the effect is not 
  10261.  usually noticeable). 
  10262.  
  10263.  
  10264. ΓòÉΓòÉΓòÉ 6.89. VOL - Display disk volume labels ΓòÉΓòÉΓòÉ
  10265.  
  10266.  Purpose:    Display disk volume label(s). 
  10267.  
  10268.  Format:     VOL [drive: ] ... 
  10269.  
  10270.              drive :  The drive or drives to search for labels. 
  10271.  
  10272.  Usage 
  10273.  
  10274.  Each disk may have a volume label, created when the disk is formatted or with 
  10275.  the external LABEL command.  Also, every floppy disk formatted with DOS 
  10276.  version 4.0 or above, OS/2, or Windows NT has a volume serial number. 
  10277.  
  10278.  The VOL command will display the volume label and, if available, the volume 
  10279.  serial number of a disk volume.  If the disk doesn't have a volume label, VOL 
  10280.  will report that it is "unlabeled."  If you don't specify a drive, VOL 
  10281.  displays information about the current drive: 
  10282.  
  10283.           [c:\] vol
  10284.           Volume in drive C: is MYHARDDISK
  10285.  
  10286.  If available, the volume serial number will appear after the drive label or 
  10287.  name. 
  10288.  
  10289.  To display the disk labels for drives A and B: 
  10290.  
  10291.           [c:\] vol a: b:
  10292.           Volume in drive A: is unlabeled
  10293.           Volume in drive B: is BACKUP_2
  10294.  
  10295.  
  10296. ΓòÉΓòÉΓòÉ 6.90. VSCRPUT - Display text vertically and in color ΓòÉΓòÉΓòÉ
  10297.  
  10298.  Purpose:    Display text vertically in the specified color. 
  10299.  
  10300.  Format:     VSCRPUT row col [BRIght] [BLInk] fg ON [BRIght] bg text 
  10301.  
  10302.              row :  Starting row number. 
  10303.              col :  Starting column number. 
  10304.              fg :  Foreground text color. 
  10305.              bg :  Background text color. 
  10306.              text :  The text to display. 
  10307.  
  10308.  See also:  SCRPUT. 
  10309.  
  10310.  Usage 
  10311.  
  10312.  VSCRPUT writes text vertically on the screen rather than horizontally.  Like 
  10313.  the SCRPUT command, it uses the colors you specify to write the text.  VSCRPUT 
  10314.  can be used for simple graphs and charts generated by batch files.  VSCRPUT 
  10315.  always leaves the cursor at the end of the displayed text.  See Colors and 
  10316.  Color Names for details about colors and notes on the use of bright background 
  10317.  colors. 
  10318.  
  10319.  The row and column are zero-based, so on a standard 25 line by 80 column 
  10320.  display, valid rows are 0 - 24 and valid columns are 0 - 79.  VSCRPUT checks 
  10321.  for a valid row and column, and displays a "Usage" error message if either 
  10322.  value is out of range. 
  10323.  
  10324.  You can also specify the row and column as offsets from the current cursor 
  10325.  position.  Begin the value with a plus sign [+] to move down the specified 
  10326.  number of rows or to the right the specified number of columns before 
  10327.  displaying text, or with a minus sign [-] to move up or to the left. 
  10328.  
  10329.  If you specify 999 for the row, VSCRPUT will center the text vertically on the 
  10330.  display.  If you specify 999 for the column, VSCRPUT will center the text 
  10331.  horizontally. 
  10332.  
  10333.  VSCRPUT does not move the cursor when it displays the text. 
  10334.  
  10335.  The following batch file fragment displays an X and Y axis and labels them: 
  10336.  
  10337.           cls bright white on blue
  10338.           drawhline 20 10 40 1 bright white on blue
  10339.           drawvline 2 10 19 1 bright white on blue
  10340.           scrput 21 20 bright red on blue X axis
  10341.           vscrput 8 9 bright red on blue Y axis
  10342.  
  10343.  VSCRPUT checks for a valid row and column, and displays a "Usage" error 
  10344.  message if either value is out of range. 
  10345.  
  10346.  
  10347. ΓòÉΓòÉΓòÉ 6.91. WINDOW - Change the window state or title ΓòÉΓòÉΓòÉ
  10348.  
  10349.  Purpose:    Minimize or maximize the current window, restore the default 
  10350.              window size, or change the window title. 
  10351.  
  10352.  Format:     WINDOW [MIN | MAX | RESTORE | /POS=x,y,width,height | "title "] 
  10353.  
  10354.              title :  A new title for the window. 
  10355.  
  10356.              /POS(ition) 
  10357.  
  10358.  See also:  TITLE. 
  10359.  
  10360.  Usage 
  10361.  
  10362.  The WINDOW command is used to control the appearance and title of the current 
  10363.  window.  WINDOW can only be used to specify one change to the current window 
  10364.  at a time; to perform more than one operation, you must use multiple WINDOW 
  10365.  commands (see examples below). 
  10366.  
  10367.  WINDOW MIN reduces the window to an icon, WINDOW MAX enlarges it to its 
  10368.  maximum size, and WINDOW RESTORE returns the window to its default size and 
  10369.  location on the desktop. 
  10370.  
  10371.  You can use the /POS option to set the location and size of the window on the 
  10372.  desktop.  The x and y values of the /POS option select the window's origin 
  10373.  while the width and height values determine its size. 
  10374.  
  10375.  If you specify a new title, the title text must be enclosed in double quotes. 
  10376.  The quotes will not appear as part of the actual title. 
  10377.  
  10378.  For example, to maximize the current window and change it's title, you must 
  10379.  perform two WINDOW commands: 
  10380.  
  10381.           [c:\] window max
  10382.           [c:\] window "JP Software / 4OS2"
  10383.  
  10384.  Options 
  10385.  
  10386.     /POS:   (Position) Set the window position and size on the screen.  The 
  10387.             syntax is /POS=x, y, width, height where the values are specified 
  10388.             in pixels or pels.  x and y refer to the position of the top left 
  10389.             corner of the window relative to the bottom left corner of the 
  10390.             screen. 
  10391.  
  10392.  
  10393. ΓòÉΓòÉΓòÉ 6.92. Y - "Y" pipe fitting ΓòÉΓòÉΓòÉ
  10394.  
  10395.  Purpose:    Copy standard input to standard output, and then copy the 
  10396.              specified file(s) to standard output. 
  10397.  
  10398.  Format:     Y file ... 
  10399.  
  10400.              file :  The file or list of files to send to standard output. 
  10401.  
  10402.  See also:  TEE. 
  10403.  
  10404.  Usage 
  10405.  
  10406.  The Y command copies input from standard input (usually the keyboard) to 
  10407.  standard output (usually the screen).  Once the input ends, the named files 
  10408.  are appended to standard output. 
  10409.  
  10410.  For example, to get text from standard input, append the files MEMO1 and MEMO2 
  10411.  to it, and send the output to MEMOS : 
  10412.  
  10413.           [c:\] y memo1 memo2 > memos
  10414.  
  10415.  The Y command is most useful if you want to add redirected data to the 
  10416.  beginning of a file instead of appending it to the end.  For example, this 
  10417.  command copies the output of DIR, followed by the contents of  the file 
  10418.  DIREND, to the file DIRALL: 
  10419.  
  10420.           [c:\] dir | y dirend > dirall
  10421.  
  10422.  If you are typing at the keyboard to produce input text for Y, you must enter 
  10423.  a Ctrl-Z to terminate the input. 
  10424.  
  10425.  When using Y with a pipe you must take into account that the programs on the 
  10426.  two ends of the pipe run simultaneously, not sequentially. 
  10427.  
  10428.  See Piping for more information. 
  10429.  
  10430.  
  10431. ΓòÉΓòÉΓòÉ 7. Aliases ΓòÉΓòÉΓòÉ
  10432.  
  10433. Much of the power of 4OS2 comes together in aliases, which give you the ability 
  10434. to create your own commands.  An alias is a name that you select for a command 
  10435. or group of commands.  Simple aliases substitute a new name for an existing 
  10436. command.  More complex aliases can redefine the default settings of internal or 
  10437. external commands, operate as very fast in-memory batch files, and perform 
  10438. commands based on the results of other commands. 
  10439.  
  10440. This section will show you some examples of the power of aliases.  See the 
  10441. ALIAS command for complete details about writing your own aliases. 
  10442.  
  10443. The simplest type of alias gives a new name to an existing command.  For 
  10444. example, you could create a command called ROOT which uses CD to switch to the 
  10445. root directory this way: 
  10446.  
  10447.         [c:\] alias root = cd \
  10448.  
  10449. After the alias has been defined this way, every time you type the command 
  10450. ROOT, you will actually execute the command CD \. 
  10451.  
  10452. Aliases can also create customized versions of commands.  For example, the DIR 
  10453. command can sort a directory in various ways.  You can create an alias called 
  10454. DE that means "sort the directory by filename extension, and pause after each 
  10455. page while displaying it" like this: 
  10456.  
  10457.         [c:\] alias de = dir /oe /p
  10458.  
  10459. Aliases can be used to execute sequences of commands as well.  The following 
  10460. command creates an alias called W which saves the current drive and directory, 
  10461. changes to the WP directory on drive C, runs the program E:\WP60\WP.EXE, and, 
  10462. when the program terminates, returns to the original drive and directory: 
  10463.  
  10464.         [c:\] alias w = `pushd c:\wp & e:\wp60\wp.exe & popd`
  10465.  
  10466. This alias is enclosed in back-quotes because it contains multiple commands. 
  10467. You must use the back-quotes whenever an alias contains multiple commands, 
  10468. environment variables, parameters (see below), redirection, or piping.  See the 
  10469. ALIAS 
  10470.  
  10471. Aliases can be nested, that is, one alias can invoke another.  For example, the 
  10472. alias above could also be written as: 
  10473.  
  10474.         [c:\] alias wp = e:\wp60\wp.exe
  10475.         [c:\] alias w = `pushd c:\wp & wp & popd`
  10476.  
  10477. If you enter W as a command, the command processor will execute the PUSHD 
  10478. command, detect that the next command (WP) is another alias, and execute the 
  10479. program E:\WP60\WP.EXE, and - when the program exits - return to the first 
  10480. alias, execute the POPD command, and return to the prompt. 
  10481.  
  10482. You can use aliases to change the default options for both internal commands 
  10483. and external commands.  Suppose that you always want the DEL command to prompt 
  10484. before it erases a file: 
  10485.  
  10486.         [c:\] alias del = *del /p
  10487.  
  10488. An asterisk [*] is used in front of the second "del" to show that it is the 
  10489. name of an internal command, not an alias.  See ALIAS for more information 
  10490. about this use of the asterisk. 
  10491.  
  10492. You may have a program on your system that has the same name as an internal 
  10493. command.  Normally, if you type the command name, you will start the internal 
  10494. command rather than the program you desire, unless you explicitly add its full 
  10495. path on the command line.  For example, if you have a program named LIST.COM in 
  10496. the C:\UTIL directory, you could run it with the command C:\UTIL\LIST.COM. 
  10497. However, if you simply type LIST, the internal LIST command will be invoked 
  10498. instead.  Aliases give you two ways to get around this problem. 
  10499.  
  10500. First, you could define an alias that runs the program in question, but with a 
  10501. different name: 
  10502.  
  10503.         [c:\] alias l = c:\util\list.com
  10504.  
  10505. Another approach is to rename the internal command and use the original name 
  10506. for the external program.  The following example renames the LIST command as 
  10507. DISPLAY and then uses a second alias to run LIST.COM whenever you type LIST: 
  10508.  
  10509.         [c:\] alias display = *list
  10510.         [c:\] alias list = c:\util\list.com
  10511.  
  10512. You can also assign an alias to a key, so that every time you press the key, 
  10513. the command will be invoked.  You do so by naming the alias with an at sign [@] 
  10514. followed by a key name.  After you enter this next example, you will see a 
  10515. 2-column directory with paging whenever you press Shift-F5, then Enter: 
  10516.  
  10517.         [c:\] alias @Shift-F5 = *dir /2/p
  10518.  
  10519. This alias will put the DIR command on the command line when you press 
  10520. Shift-F5, then wait for you to enter file names or additional switches.  You 
  10521. must press Enter when you are ready to execute the command.  To execute the 
  10522. command immediately, without displaying it on the command line or waiting for 
  10523. you to press Enter, use two at signs at the start of the alias name: 
  10524.  
  10525.         [c:\] alias @@Shift-F5 = *dir /2/p
  10526.  
  10527. The next example clears the screen whenever you press Alt-F1: 
  10528.  
  10529.         [c:\] alias @@Alt-F1 = cls
  10530.  
  10531. Aliases have many other capabilities as well.  This example creates a simple 
  10532. command-line calculator using the @EVAL function.  Once you have entered the 
  10533. example, you can type CALC 4*19, for example, and you will see the answer: 
  10534.  
  10535.         [c:\] alias calc = `echo The answer is:  %@eval[%&]`
  10536.  
  10537. Our last example in this section creates an alias called IN.  It will 
  10538. temporarily change directories, run an internal or external command, and then 
  10539. return to the current directory when the command is finished: 
  10540.  
  10541.         [c:\] alias in = `pushd %1 & %2& & popd`
  10542.  
  10543. Now if you type 
  10544.  
  10545.         [c:\] in c:\letters wp letter.txt
  10546.  
  10547. you will change to the C:\LETTERS subdirectory, execute the command WP 
  10548. LETTER.TXT and then return to the current directory. 
  10549.  
  10550. The above example uses two parameters:  %1 means the first argument on the 
  10551. command line, and %2& means the second and all subsequent arguments. Parameters 
  10552. are explained in detail under the ALIAS command. 
  10553.  
  10554. Your copy of 4OS2 includes a sample alias file called ALIASES which contains 
  10555. several useful aliases and demonstrates many alias techniques. See the ALIAS 
  10556. and UNALIAS commands for more information and examples.  Also see Using Aliases 
  10557. in Batch Files. 
  10558.  
  10559.  
  10560. ΓòÉΓòÉΓòÉ 8. Batch Files ΓòÉΓòÉΓòÉ
  10561.  
  10562. A batch file is a file that contains a list of commands to execute.  4OS2 reads 
  10563. and interprets each line as if it had been typed at the keyboard.  Like 
  10564. aliases, batch files are handy for automating computing tasks.  Unlike aliases, 
  10565. batch files can be as long as you wish.  Batch files take up separate disk 
  10566. space for each file, and can't usually execute quite as quickly as aliases, 
  10567. since they must be read from the disk. 
  10568.  
  10569. The topics included in this section are: 
  10570.  
  10571.             .BAT, .CMD, and .BTM Files 
  10572.             Echoing in Batch Files 
  10573.             Batch File Parameters 
  10574.             Using Environment Variables 
  10575.             Batch File Commands 
  10576.             Interrupting a Batch File 
  10577.             Automatic Batch Files (4START & 4EXIT) 
  10578.             Detecting 4OS2 
  10579.             Using Aliases in Batch Files 
  10580.             Debugging Batch Files 
  10581.             Batch File String Processing 
  10582.             Batch File Line Continuation 
  10583.             Batch File Compression 
  10584.             Special Character Compatibility 
  10585.             Command Parsing 
  10586.             Argument Quoting 
  10587.             REXX Support 
  10588.             EXTPROC Support 
  10589.  
  10590.  
  10591. ΓòÉΓòÉΓòÉ 8.1. .BAT, .CMD, and .BTM Files ΓòÉΓòÉΓòÉ
  10592.  
  10593. A batch file can run in two different modes.  In the first, traditional mode, 
  10594. each line of the batch file is read and executed individually.  In the second 
  10595. mode, the entire batch file is read into memory at once.  The second mode can 
  10596. be 5 to 10 times faster, especially if most of the commands in the batch file 
  10597. are internal commands.  However, only the first mode can be used for 
  10598. self-modifying batch files (which are rare), or for batch files which install 
  10599. memory-resident utilities under DOS. 
  10600.  
  10601. The batch file's extension determines its mode.  Files with a .CMD extension 
  10602. are run in the slower, traditional mode.  Files with a .BTM extension are run 
  10603. in the faster, more efficient mode.  You can change the execution mode inside a 
  10604. batch file with the LOADBTM command. 
  10605.  
  10606.  
  10607. ΓòÉΓòÉΓòÉ 8.2. Echoing in Batch Files ΓòÉΓòÉΓòÉ
  10608.  
  10609. By default, each line in a batch file is displayed or "echoed" as it is 
  10610. executed.  You can change this behavior, if you want, in several different 
  10611. ways: 
  10612.  
  10613.         Any batch file line that begins with an [@] symbol will not be 
  10614.         displayed. 
  10615.  
  10616.         The display can be turned off and on within a batch file with the ECHO 
  10617.         OFF and ECHO ON commands. 
  10618.  
  10619.         The default setting can be changed with the SETDOS /V command, on the 
  10620.         Options 1 page of the OPTION dialogs, or the BatchEcho directive in the 
  10621.         .INI file. 
  10622.  
  10623.  For example, the following line turns off echoing inside a batch file.  The 
  10624.  [@] symbol keeps the batch file from displaying the ECHO OFF command: 
  10625.  
  10626.           @echo off
  10627.  
  10628.  4OS2 also has a command line echo that is unrelated to the batch file echo 
  10629.  setting.  See ECHO for details about both settings. 
  10630.  
  10631.  
  10632. ΓòÉΓòÉΓòÉ 8.3. Batch File Parameters ΓòÉΓòÉΓòÉ
  10633.  
  10634. Like aliases and application programs, batch files can examine the command line 
  10635. that is used to invoke them.  The command tail (everything on the command line 
  10636. after the batch file name) is separated into individual parameters (also called 
  10637. arguments or batch variables) by scanning for the spaces, tabs, and commas that 
  10638. separate the parameters.  A batch file can work with the individual parameters 
  10639. or with the command tail as a whole. 
  10640.  
  10641. These parameters are numbered from %1 to %127.  %1 refers to the first 
  10642. parameter on the command line, %2 to the second, and so on.  It is up to the 
  10643. batch file to determine the meaning of each parameter.  You can use quotation 
  10644. marks to pass spaces, tabs, commas, and other special characters in a batch 
  10645. file parameter; see Argument Quoting for details. 
  10646.  
  10647. Parameters that are referred to in a batch file, but which are missing on the 
  10648. command line, appear as empty strings inside the batch file.  For example, if 
  10649. you start a batch file and put two parameters on the command line, any 
  10650. reference in the batch file to %3, or any higher-numbered parameter, will be 
  10651. interpreted as an empty string. 
  10652.  
  10653. A batch file can also work with three special parameters:  %0 contains the name 
  10654. of the batch file as it was entered on the command line, %# contains the number 
  10655. of command line arguments, and %n$ contains the complete command-line tail 
  10656. starting with argument number "n" (for example, %3$ means the third parameter 
  10657. and all those after it).  The default value of "n" is 1, so %$ contains the 
  10658. entire command tail.  The values of these special parameters will change if you 
  10659. use the SHIFT command. 
  10660.  
  10661. By default, 4DOS uses an ampersand [&] instead of a dollar sign [$] to indicate 
  10662. the remainder of the command tail.  For example, %& means all the parameters, 
  10663. and %2& means the second parameter and all those after it.  If you want to 
  10664. share batch files or aliases between 4DOS and 4OS2, see Special Character 
  10665. Compatibility for information on selecting compatible parameter characters for 
  10666. all products. 
  10667.  
  10668. For example, if your batch file interprets the first argument as a subdirectory 
  10669. name then the following line would move to the specified directory: 
  10670.  
  10671.         cd %1
  10672.  
  10673. A friendlier batch file would check to make sure the directory exists and take 
  10674. some special action if it doesn't: 
  10675.  
  10676.         iff isdir %1 then & cd %1
  10677.         else & echo Subdirectory %1 does not exist! & quit
  10678.         endiff
  10679.  
  10680. (see the IF and IFF commands). 
  10681.  
  10682. Batch files can also use environment variables, internal variables, and 
  10683. variable functions. 
  10684.  
  10685.  
  10686. ΓòÉΓòÉΓòÉ 8.4. Using Environment Variables ΓòÉΓòÉΓòÉ
  10687.  
  10688. Batch files can also use environment variables, internal variables, and 
  10689. variable functions. You can use these variables and functions to determine 
  10690. system status (e.g., the type of CPU in the system), resource levels (e.g., the 
  10691. amount of free disk space), file information (e.g., the date and time a file 
  10692. was last modified), and other information (e.g., the current date and time). 
  10693. You can also perform arithmetic operations (including date and time 
  10694. arithmetic), manipulate strings and substrings, extract parts of a filename, 
  10695. and read and write files. 
  10696.  
  10697. To create temporary variables for use inside a batch file, just use the SET 
  10698. command to store the information you want in an environment variable.  Pick a 
  10699. variable name that isn't likely to be in use by some other program (for 
  10700. example, PATH would be a bad choice), and use the UNSET command to remove these 
  10701. variables from the environment at the end of your batch file.  You can use 
  10702. SETLOCAL and ENDLOCAL to create a "local" environment so that the original 
  10703. environment will be restored when your batch file is finished. 
  10704.  
  10705. Environment variables used in a batch file may contain either numbers or text. 
  10706. It is up to you to keep track of what's in each variable and use it 
  10707. appropriately; if you don't (for example, if you use %@EVAL to add a number to 
  10708. a text string), you'll get an error message. 
  10709.  
  10710.  
  10711. ΓòÉΓòÉΓòÉ 8.5. Batch File Commands ΓòÉΓòÉΓòÉ
  10712.  
  10713. Several 4OS2 commands are particularly suited to batch file processing. Here is 
  10714. a list of some of the commands you might find most useful: 
  10715.  
  10716.         ACTIVATE    activates another window. 
  10717.         BEEP        produces a sound of any pitch and duration through the 
  10718.                     computer's speaker. 
  10719.         CALL        executes one batch file from within another. 
  10720.         CANCEL      terminates all batch file processing. 
  10721.         CLS and COLORset the screen display colors. 
  10722.         DO          starts a loop.  The loop can be based on a counter, or on a 
  10723.                     conditional test like those used in IF and IFF. 
  10724.         DRAWBOX     draws a box on the screen. 
  10725.         DRAWHLINE DRAWVLINEdraw horizontal and vertical lines on the screen. 
  10726.         ECHO and ECHOSprint text on the screen (the text can also be redirected 
  10727.                     to a file or device).  ECHOERR and ECHOSERR print text to 
  10728.                     the standard error device. 
  10729.         GOSUB       executes a subroutine inside a batch file.  The RETURN 
  10730.                     command terminates the subroutine. 
  10731.         GOTO        branches to a different location in the batch file. 
  10732.         FOR         executes commands for each file that matches a set of 
  10733.                     wildcards, or each entry in a list. 
  10734.         IF and IFF  execute commands based on a test of string or numeric 
  10735.                     values, program exit codes, or other conditions. 
  10736.         INKEY and INPUTcollect keyboard input from the user and store it in 
  10737.                     environment variables. 
  10738.         KEYSTACK    sends keystrokes to applications. 
  10739.         LOADBTM     changes the batch file operating mode. 
  10740.         ON          initializes error handling for Ctrl-C / Ctrl-Break, or for 
  10741.                     program and command errors. 
  10742.         PAUSE       displays a message and waits for the user to press a key. 
  10743.         QUIT        ends the current batch file and optionally returns an exit 
  10744.                     code. 
  10745.         REM         places a remark in a batch file. 
  10746.         SCREEN      positions the cursor on the screen and optionally prints a 
  10747.                     message at the new location. 
  10748.         SCRPUT      displays a message in color. 
  10749.         SETLOCAL    saves the current disk drive, default directory, 
  10750.                     environment, alias list, and special character settings. 
  10751.                     ENDLOCAL restores the settings that were saved. 
  10752.         SHIFT       changes the numbering of the batch file parameters. 
  10753.         START       starts another session or window in certain multitasking 
  10754.                     environments. 
  10755.         SWITCH      selects a group of statements to execute based on the value 
  10756.                     of a variable. 
  10757.         TEXT        displays a block of text.  ENDTEXT ends the block. 
  10758.         TIMER       starts or reads a stopwatch. 
  10759.         TITLE       changes the window title. 
  10760.         VSCRPUT     displays a vertical message in color. 
  10761.  
  10762.  These commands, along with the internal variables and variable functions, make 
  10763.  the enhanced batch file language extremely powerful.  Your copy of 4OS2 
  10764.  includes a sample batch file, in the file EXAMPLES.BTM, that demonstrates some 
  10765.  of the things you can do with batch files. 
  10766.  
  10767.  
  10768. ΓòÉΓòÉΓòÉ 8.6. Interrupting a Batch File ΓòÉΓòÉΓòÉ
  10769.  
  10770. You can usually interrupt a batch file by pressing Ctrl-C or Ctrl-Break. 
  10771. Whether and when these keystrokes are recognized will depend on whether the 
  10772. command processor or an application program is running, how the application (if 
  10773. any) was written, and whether the ON BREAK command is in use. 
  10774.  
  10775. If 4OS2 detects a Ctrl-C or Ctrl-Break (and ON BREAK is not in use), it will 
  10776. display a prompt, for example: 
  10777.  
  10778.         Cancel batch job C:\CHARGE.BTM ? (Y/N/A) :
  10779.  
  10780. Enter N to continue, Y to terminate the current batch file and continue with 
  10781. any batch file which called it, or A to end all batch file processing 
  10782. regardless of the batch file nesting level.  Answering Y is similar to the QUIT 
  10783. command; answering A is similar to the CANCEL command. 
  10784.  
  10785.  
  10786. ΓòÉΓòÉΓòÉ 8.7. Automatic Batch Files ΓòÉΓòÉΓòÉ
  10787.  
  10788. 4OS2 supports "automatic" batch files, files that run without your 
  10789. intervention, as long as the command processor can find them. 
  10790.  
  10791. Each time 4OS2 starts as either a primary or a secondary shell, it looks for an 
  10792. automatic batch file called 4START.BTM or 4START.CMD.  If the 4START batch file 
  10793. is not in the same directory as 4OS2 itself, you should use the Startup page of 
  10794. the OPTION dialogs or the 4StartPath directive in your .INI file to specify its 
  10795. location.  4START is optional, so 4OS2 will not display an error message if it 
  10796. cannot find the file. 
  10797.  
  10798. 4START is a convenient place to change the color or content of the prompt for 
  10799. each shell, LOG the start of a shell, or put other special startup or 
  10800. configuration commands.  4START is also a good place to set aliases and 
  10801. environment variables. 
  10802.  
  10803. The entire startup command line passed to the command processor is available to 
  10804. 4START via batch file parameters (%1, %2, etc.).  This can be useful if you 
  10805. want to see the command line passed to a secondary shell by an application. 
  10806. For example, to pause if any parameters are passed to a secondary shell you 
  10807. could include this command in 4START (enter this on one line): 
  10808.  
  10809.         if "%1" != "" .and. "%_shell" gt 0 pause Starting shell
  10810.         %_shell with parameters [%$]
  10811.  
  10812. Whenever a 4OS2 shell ends, it runs an automatic batch file called 4EXIT.BTM, 
  10813. 4EXIT.CMD.  This file, if you use it, should be in the same directory as your 
  10814. 4START batch file.  Like 4START, 4EXIT is optional.  It is not necessary in 
  10815. most circumstances, but it is a convenient place to put commands to save 
  10816. information such as a history list before a shell ends, or LOG the end of the 
  10817. shell. 
  10818.  
  10819. Pipes, Transient Sessions, and 4START 
  10820.  
  10821. When you set up the 4START file, remember that it is executed every time 4OS2 
  10822. starts, including when running a pipe, or a transient copy of the command 
  10823. processor started with the /C startup option. 
  10824.  
  10825. For example, suppose you enter a command line like this, which uses a pipe: 
  10826.  
  10827.         [c:\data] myprog | sort > out.txt
  10828.  
  10829. Normally this command would create the output file C:\DATA\OUT.TXT.  However, 
  10830. if you have a 4START file which changes to a different directory, the output 
  10831. file will be written there -- not in C:\DATA. 
  10832.  
  10833. This is because the command processor starts a second copy of itself to run the 
  10834. commands on the right hand side of the pipe, and that new copy runs 4START 
  10835. before processing the commands from the pipe.  If 4START changes directories, 
  10836. the command from the pipe will be executed in the new directory. 
  10837.  
  10838. The same problem can occur if you use a transient session started with /C to 
  10839. run an individual command, then exit -- the session will execute in the 
  10840. directory set by 4START, not the directory in which it was originally started. 
  10841. For example, suppose you set up an OS/2 desktop object with a command line like 
  10842. this, which starts a transient session: 
  10843.  
  10844.         Command:            d:\4os2\4os2.exe /c list myfile.txt
  10845.         Working Directory:  c:\data
  10846.  
  10847. Normally this command would LIST the file C:\DATA\MYFILE.TXT.  However, if 
  10848. 4START changes to a different directory, the command processor will look for 
  10849. MYFILE.TXT there -- not in C:\DATA. 
  10850.  
  10851. Similarly, any changes to environment variables or other settings in 4START 
  10852. will affect all copies of the command processor, including those used for pipes 
  10853. and transient sessions. 
  10854.  
  10855. You can work around these potential problems with the IF or IFF command and the 
  10856. internal variables _PIPE and _TRANSIENT.  For example, to skip all 4START 
  10857. processing when running in a pipe or transient session, you could use a command 
  10858. like this at the beginning of 4START: 
  10859.  
  10860.         if %_pipe != 0 .or. %_transient != 0 quit
  10861.  
  10862.  
  10863. ΓòÉΓòÉΓòÉ 8.8. Detecting 4OS2 ΓòÉΓòÉΓòÉ
  10864.  
  10865. From a batch file, you can determine if 4OS2 or Take Command is loaded by 
  10866. testing for the variable function @EVAL, with a test like this: 
  10867.  
  10868.         if "%@eval[2 + 2]%" == "4" echo 4OS2 is loaded!
  10869.  
  10870. This test can never succeed in CMD.EXE.  Other variable functions could be used 
  10871. for the same purpose. 
  10872.  
  10873.  
  10874. ΓòÉΓòÉΓòÉ 8.9. Using Aliases in Batch Files ΓòÉΓòÉΓòÉ
  10875.  
  10876. One way to simplify batch file programming is to use aliases to hide 
  10877. unnecessary detail inside a batch file.  For example, suppose you want a batch 
  10878. file to check for certain errors, and display a message and exit if one is 
  10879. encountered.  This example shows one way to do so: 
  10880.  
  10881.         setlocal
  10882.         unalias *
  10883.         alias error `echo. & echo ERROR: %$ & goto dispmenu`
  10884.         alias fatalerror `echo. & echo FATAL ERROR: %$ & quit`
  10885.         alias in `pushd %1 & %2$ & popd`
  10886.         if not exist setup.btm fatalerror Missing setup file!
  10887.         call setup.btm
  10888.         cls
  10889.         :dispmenu
  10890.         text
  10891.                   1. Word Processing
  10892.                   2. Spreadsheet
  10893.                   3. Communications
  10894.                   4. Exit
  10895.         endtext
  10896.         echo.
  10897.         inkey Enter your choice:  %%userchoice
  10898.         switch %userchoice
  10899.         case 1
  10900.            input Enter the file name:  %%fname
  10901.            if not exist fname error File does not exist
  10902.            in d:\letters c:\wp60\wp.exe
  10903.         case 2
  10904.            in d:\finance c:\quattro\q.exe
  10905.         case 3
  10906.            in d:\comm c:\comsw\pcplus.exe
  10907.         case 4
  10908.            goto done
  10909.         default
  10910.           error Invalid choice, try again
  10911.         endswitch
  10912.         goto dispmenu
  10913.         :done
  10914.         endlocal
  10915.  
  10916. The first alias, ERROR, simply displays an error message and jumps to the label 
  10917. DISPMENU to redisplay the menu.  The "%$" in the second ECHO command displays 
  10918. all the text passed to ERROR as the content of the message.  The similar 
  10919. FATALERROR alias displays the message, then exits the batch file. 
  10920.  
  10921. The last alias, IN, expects 2 or more command-line arguments.  It uses the 
  10922. first as a new working directory and changes to that directory with a PUSHD 
  10923. command.  The rest of the command line is interpreted as another command plus 
  10924. possible command line parameters, which the alias executes.  This alias is used 
  10925. here to switch to a directory, run an application, and switch back.  It could 
  10926. also be used from the command line. 
  10927.  
  10928. The following lines print a menu on the screen and then get a keystroke from 
  10929. the user and store the keystroke in an environment variable called userchoice. 
  10930. Then the SWITCH command is used to test the user's keystroke and decide what 
  10931. action to take. 
  10932.  
  10933. There's another side to aliases in batch files.  If you're going to distribute 
  10934. your batch files to others, you need to remember that they may have aliases 
  10935. defined for the commands you're going to use.  For example if the user has 
  10936. aliased CD to CDD and you aren't expecting this, your file may not work as you 
  10937. intended.  There are two ways to address this problem. 
  10938.  
  10939. First, you can use SETLOCAL, ENDLOCAL, and UNALIAS to clear out aliases before 
  10940. your batch file starts and restore them at the end, as we did in the previous 
  10941. example.  Remember that SETLOCAL and ENDLOCAL will save and restore not only 
  10942. the aliases but also the environment, the current drive and directory, and 
  10943. various special characters. 
  10944.  
  10945. If this method isn't appropriate or necessary for the batch file you're working 
  10946. on, you can also use an asterisk [*] before the name of any command.  The 
  10947. asterisk means the command that follows it should not be interpreted as an 
  10948. alias.  For example the following command redirects a list of file names to the 
  10949. file FILELIST: 
  10950.  
  10951.         dir /b > filelist
  10952.  
  10953. However, if the user has redefined DIR with an alias this command may not do 
  10954. what you want.  To get around this just use: 
  10955.  
  10956.         *dir /b > filelist
  10957.  
  10958. The same can be done for any command in your batch file.  If you use the 
  10959. asterisk, it will disable alias processing, and the rest of the command will be 
  10960. processed normally as an internal command, external command, or batch file. 
  10961. Using an asterisk before a command will work whether or not there is actually 
  10962. an alias defined with the same name as the command.  If there is no alias with 
  10963. that name, the asterisk will be ignored and the command will be processed as if 
  10964. the asterisk wasn't there. 
  10965.  
  10966.  
  10967. ΓòÉΓòÉΓòÉ 8.10. Debugging Batch Files ΓòÉΓòÉΓòÉ
  10968.  
  10969. 4OS2 includes a built-in batch file debugger, invoked with the SETDOS /Y1 
  10970. command.  The debugger allows you to "single-step" through a batch file line by 
  10971. line, with the file displayed in a popup window as it executes.  You can 
  10972. execute or skip the current line, continue execution with the debugger turned 
  10973. off, view the fully-expanded version of the command line, or exit the batch 
  10974. file.  The batch debugger can also pop up a separate window to view current 
  10975. environment variables or aliases so you can check their values during 
  10976. execution, and can pop up the LIST command to display the contents of any file. 
  10977.  
  10978. To start the debugger, insert a SETDOS /Y1 command at the beginning of the 
  10979. portion of the batch file you want to debug, and a SETDOS /Y0 command at the 
  10980. end.  You can also invoke SETDOS /Y1 from the prompt, but because the debugger 
  10981. is automatically turned off whenever the command processor returns to the 
  10982. prompt, you must enter the SETDOS command and the batch file name on the same 
  10983. line, for example: 
  10984.  
  10985.         [c:\] setdos /y1 & mybatch.btm
  10986.  
  10987. If you use the debugger regularly you may want to define a simple alias to 
  10988. invoke it, for example: 
  10989.  
  10990.         [c:\] alias trace `setdos /y1 & %$`
  10991.  
  10992. This alias simply enables the debugger, then runs whatever command is passed to 
  10993. it.  You can use the alias to debug a batch file with a command like this: 
  10994.  
  10995.         [c:\] trace mybatch.btm
  10996.  
  10997. When the debugger is running you can control its behavior with keystrokes. 
  10998. Debugging continues after each keystroke unless otherwise noted: 
  10999.  
  11000.         T(race), Enter, or F8Execute the current command.  If it calls a 
  11001.                        subroutine with GOSUB, or another batch file with CALL, 
  11002.                        single-step into the called subroutine or batch file. 
  11003.         S(tep) or F10  Execute the current command, but execute any subroutine 
  11004.                        or CALLed batch file without single-stepping. 
  11005.         J(ump)         Skip the current command and proceed to the next 
  11006.                        command. 
  11007.         X (Expand)     Display the next command to be executed, after expansion 
  11008.                        of aliases and environment variables. 
  11009.         L(ist)         Prompt for a file name and then view the file with the 
  11010.                        LIST command. 
  11011.         V(ariables)    Open a popup window to display the current environment, 
  11012.                        in alphabetical order. 
  11013.         A(liases)      Open a popup window to display the current aliases, in 
  11014.                        alphabetical order. 
  11015.         O(ff) or Esc   Turn off the debugger and continue with the remainder of 
  11016.                        the batch file. 
  11017.         Q(uit)         Quit the debugger and the current batch file, without 
  11018.                        executing the remainder of the file. 
  11019.  
  11020.  The debugger highlights each line of the batch file as it is executed.  It 
  11021.  executes the commands on the line one at a time, so when a line contains more 
  11022.  than one command, the highlight will not move as each command is executed.  To 
  11023.  see the individual commands, use the X key to expand each command before it is 
  11024.  executed. 
  11025.  
  11026.  If you use a "prefix" command like EXCEPT, FOR, GLOBAL, or SELECT, the prefix 
  11027.  command is considered one command, and each command it invokes is another. 
  11028.  For example, this command line executes four commands -- the FOR and three 
  11029.  ECHO commands: 
  11030.  
  11031.           for %x in (a b c) do echo %x
  11032.  
  11033.  You cannot use the batch debugger with REXX files or EXTPROC files.  It can 
  11034.  only be used with normal 4OS2 batch files. 
  11035.  
  11036.  The debugger gives you a detailed, step-by-step view of batch file execution, 
  11037.  and will help solve particularly difficult batch file problems.  However, in 
  11038.  some cases you will find it easier to diagnose these problems with techniques 
  11039.  that allow you to review what is happening at specific points in the batch 
  11040.  file without stepping through each line individually. 
  11041.  
  11042.  There are several tricks you can use for this purpose.  Probably the simplest 
  11043.  is to turn ECHO on at the beginning of the file while you're testing it, or 
  11044.  use SETDOS /V2 to force ECHO on even if an ECHO OFF command is used in the 
  11045.  batch file.  This will give you a picture of what is happening as the file is 
  11046.  executed, without stopping at each line.  It will make your output look messy 
  11047.  of course, so just turn it off once things are working.  You can also turn 
  11048.  ECHO on at the beginning of a group of commands you want to "watch", and off 
  11049.  at the end, just by adding ECHO commands at the appropriate spots in your 
  11050.  file. 
  11051.  
  11052.  If an error occurs in a batch file, the error message will display the name of 
  11053.  the file, the number of the line that contained the error, and the error 
  11054.  itself.  For example: 
  11055.  
  11056.           e:\test.bat [3] Invalid parameter "/d"
  11057.  
  11058.  tells you that the file E:\TEST.BAT contains an error on line 3.  The first 
  11059.  line of the batch file is numbered 1. 
  11060.  
  11061.  Another trick, especially useful in a fast-moving batch file or one where the 
  11062.  screen is cleared before you can read messages, is to insert PAUSE commands 
  11063.  wherever you need them in order to be able to watch what's happening.  You can 
  11064.  also use an ON ERRORMSG command to pause if an error occurs, then continue 
  11065.  with the rest of the file (the first command below), or to quit if an error 
  11066.  occurs (the second command): 
  11067.  
  11068.           on errormsg pause
  11069.           on errormsg quit
  11070.  
  11071.  If you can't figure out how your aliases and variables are expanded, try 
  11072.  turning LOG on at the start of the batch file.  LOG keeps track of all 
  11073.  commands after alias and variable expansion are completed, and gives you a 
  11074.  record in a file that you can examine after the batch file is done.  You must 
  11075.  use a standard LOG command; LOG /H (the history log) does not work in batch 
  11076.  files. 
  11077.  
  11078.  You may also want to consider using redirection to capture your batch file 
  11079.  output.  Simply type the batch file name followed by the redirection symbols, 
  11080.  for example: 
  11081.  
  11082.           [c:\] mybatch >& testout
  11083.  
  11084.  This records all batch file output, including error messages, in the file 
  11085.  TESTOUT, so you can go back and examine it.  If you have ECHO ON in the batch 
  11086.  file you'll get the batch commands intermingled with the output, which can 
  11087.  provide a very useful trace of what's happening.  Of course, output from 
  11088.  full-screen commands and programs that don't write to the standard output 
  11089.  devices can't be recorded, but you can still gain a lot of useful information 
  11090.  if your batch file produces any output. 
  11091.  
  11092.  If you're using redirection to see the output, remember that any prompts for 
  11093.  input will probably go to the output file and not to the screen, so you need 
  11094.  to know in advance the sequence of keystrokes required to get through the 
  11095.  entire batch file, and enter them by hand or with KEYSTACK.  You can also use 
  11096.  the TEE command to both view the output while the batch file is running and 
  11097.  save it in a file for later examination. 
  11098.  
  11099.  
  11100. ΓòÉΓòÉΓòÉ 8.11. Batch File String Processing ΓòÉΓòÉΓòÉ
  11101.  
  11102. As you gain experience with batch files, you're likely to find that you need to 
  11103. manipulate text strings.  You may need to prompt a user for a name or password, 
  11104. process a list of files, or find a name in a phone list.  All of these are 
  11105. examples of string processing  the manipulation of lines of readable text. 
  11106.  
  11107. 4OS2 include several features that make string processing easier.  For example, 
  11108. you can use the INKEY and INPUT commands for user input; the ECHO, SCREEN, 
  11109. SCRPUT, and VSCRPUT commands for output; and the FOR command or the @FILEREAD 
  11110. function to scan through the lines of a file.  In addition, variable functions 
  11111. offer a wide range of string handling capabilities. 
  11112.  
  11113. For example, suppose you need a batch file that will prompt a user for a name, 
  11114. break the name into a first name and a last name, and then run a hypothetical 
  11115. LOGIN program.  LOGIN expects the syntax /F:first /L:last with both the first 
  11116. and last names in upper case and neither name longer than 8 characters.  Here 
  11117. is one way to write such a program: 
  11118.  
  11119.         @echo off
  11120.         setlocal
  11121.         unalias *
  11122.         input Enter your name (no initials):  %%name
  11123.  
  11124.         set first=%@word[0,%name]
  11125.         set flen=%@len[%first]
  11126.         set last=%@word[1,%name]
  11127.         set llen=%@len[%last]
  11128.  
  11129.         iff %flen gt 8 .or. %llen gt 8 then
  11130.            echo First or last name too long
  11131.            quit
  11132.         endiff
  11133.  
  11134.         login /F:%@upper[%first] /L:%@upper[%last]
  11135.         endlocal
  11136.  
  11137. The SETLOCAL command at the beginning of this batch file saves the environment 
  11138. and aliases.  Then the UNALIAS * command removes any existing aliases so they 
  11139. won't interfere with the behavior of the commands in the remainder of the batch 
  11140. file.  The first block of lines ends with an INPUT command which asks the user 
  11141. to enter a name.  The user's input is stored in the environment variable NAME. 
  11142.  
  11143. The second block of lines extracts the user's first and last names from the 
  11144. NAME variable and calculates the length of each.  It stores the first and last 
  11145. name, along with the length of each, in additional environment variables.  Note 
  11146. that the @WORD function numbers the first word as 0, not as 1. 
  11147.  
  11148. The IFF command in the third block of lines tests the length of both the first 
  11149. and last names.  If either is longer than 8 characters, the batch file displays 
  11150. an error message and ends.  Finally, in the last block, the batch file executes 
  11151. the LOGIN program with the appropriate parameters, then uses the ENDLOCAL 
  11152. command to restore the original environment and alias list.  At the same time, 
  11153. ENDLOCAL discards the temporary variables that the batch file used (NAME, 
  11154. FIRST, FLEN, etc.). 
  11155.  
  11156. When you're processing strings, you also need to avoid some common traps.  The 
  11157. biggest one is handling special characters. 
  11158.  
  11159. Suppose you have a batch file with these two commands, which simply accept a 
  11160. string and display it: 
  11161.  
  11162.         input Enter a string:  %%str
  11163.         echo %str
  11164.  
  11165. Those lines look safe, but what happens if the user enters the string "some > 
  11166. none" (without the quotes).  After the string is placed in the variable STR, 
  11167. the second line becomes: 
  11168.  
  11169.         echo some > none
  11170.  
  11171. The ">" is a redirection symbol, so the line echoes the string "some" and 
  11172. redirects it to a file called NONE - probably not what you expected.  You could 
  11173. try using quotation marks to avoid this kind of problem (see Argument Quoting), 
  11174. but that won't quite work.  If you use back-quotes (ECHO `%STR`), the command 
  11175. will echo the four-character string %STR.  Environment variable names are not 
  11176. expanded when they are inside back-quotes. 
  11177.  
  11178. If you use double quotes (ECHO "%STR"), the string entered by the user will be 
  11179. displayed properly, and so will the quotation marks.  With double quotes, the 
  11180. output would look like this: 
  11181.  
  11182.         "some > none"
  11183.  
  11184. As you can imagine, this kind of problem becomes much more difficult if you try 
  11185. to process text from a file.  Special characters in the text can cause all 
  11186. kinds of confusion in your batch files.  Text containing back-quotes, double 
  11187. quotes, or redirection symbols can be virtually impossible to handle correctly. 
  11188.  
  11189. One way to overcome these potential problems is to use the SETDOS /X command to 
  11190. temporarily disable redirection symbols and other special characters.  The 
  11191. two-line batch file above would be a lot more likely to produce the expected 
  11192. results if it were rewritten this way: 
  11193.  
  11194.         setdos /x-15678
  11195.         input Enter a string:  %%str
  11196.         echo %str
  11197.         setdos /x0
  11198.  
  11199. The first line turns off alias processing and disables several special symbols, 
  11200. including the command separator (see Multiple Commands) and all redirection 
  11201. symbols.  Once the string has been processed, the last line re-enables the 
  11202. features that were turned off in the first line. 
  11203.  
  11204. If you need advanced string processing capabilities beyond those provided by 
  11205. 4OS2 you may want to consider using the REXX language.  Our products support 
  11206. external REXX programs for this purpose. 
  11207.  
  11208.  
  11209. ΓòÉΓòÉΓòÉ 8.12. Batch File Line Continuation ΓòÉΓòÉΓòÉ
  11210.  
  11211. 4OS2 will combine multiple lines in the batch file into a single line for 
  11212. processing when you include the escape character as the very last character of 
  11213. each line to be combined (except the last). The default escape character is the 
  11214. caret [^].  For example: 
  11215.  
  11216.         echo The quick brown fox jumped over the lazy^
  11217.         sleeping^
  11218.         dog. > alphabet
  11219.  
  11220. You cannot use this technique to extend a batch file line beyond the normal 
  11221. line length limit of 1,023 characters. 
  11222.  
  11223.  
  11224. ΓòÉΓòÉΓòÉ 8.13. Batch File Compression ΓòÉΓòÉΓòÉ
  11225.  
  11226. You can compress your batch files with a program called BATCOMP.EXE, which is 
  11227. distributed with 4OS2.  This program condenses batch files by about a third and 
  11228. makes them unreadable with the LIST command and similar utilities.  Compressed 
  11229. batch files run at approximately the same speed as regular .BTM files. 
  11230.  
  11231. You may want to consider compressing batch files if you need to distribute them 
  11232. to others and keep your original code secret or prevent your users from 
  11233. altering them.  You may also want to consider compressing batch files to save 
  11234. some disk space on the systems where the compressed files are used. 
  11235.  
  11236. The full syntax for the batch compression program is 
  11237.  
  11238.         BATCOMP [/O] input file [output file ]
  11239.  
  11240. You must specify the full name of the input file, including its extension, on 
  11241. the BATCOMP command line.  If you do not specify the output file, BATCOMP will 
  11242. use the same base name as the input file and add a .BTM extension.  BATCOMP 
  11243. will also add a .BTM extension if you specify a base name for the output file 
  11244. without an extension.  For example, to compress MYBATCH.CMD and save the result 
  11245. as MYBATCH.BTM, you can use any of these three commands: 
  11246.  
  11247.         [c:\] batcomp mybatch.cmd
  11248.         [c:\] batcomp mybatch.cmd mybatch
  11249.         [c:\] batcomp mybatch.cmd mybatch.btm
  11250.  
  11251. If the output file (MYBATCH.BTM in the examples above) already exists, BATCOMP 
  11252. will prompt you before overwriting the file.  You can disable the prompt by 
  11253. including /O on the BATCOMP command line immediately before the input file 
  11254. name.  Even if you use the /O option, BATCOMP will not compress a file into 
  11255. itself. 
  11256.  
  11257. JP Software does not provide a decompression utility to decompress batch files. 
  11258. If you use BATCOMP.EXE, make sure that you also keep a copy of the original 
  11259. batch file for future inspection or modification. 
  11260.  
  11261. BATCOMP is a DOS and OS/2 character-mode application designed to run in any 
  11262. environment where our command processors run.  Each of our command processors 
  11263. includes the same version of BATCOMP.EXE, and a batch file compressed with any 
  11264. copy of BATCOMP can be used with any current JP Software command processor. 
  11265.  
  11266. You can adopt one of two strategies for keeping track of your original source 
  11267. files and compressed batch files.  First, you may want to create the source 
  11268. files with a traditional .BAT or .CMD extension and reserve the .BTM extension 
  11269. for compressed batch files.  The advantage of this approach is that you can 
  11270. modify and test the uncompressed versions at any time, although they will run 
  11271. in the slower, traditional mode unless they begin with a LOADBTM command. 
  11272.  
  11273. If you prefer, you can use a .BTM extension for both the source and compressed 
  11274. files.  In this case you will have to use a different directory or a different 
  11275. base name for each file.  For example, you might use SOURCE\MYBATCH.BTM for the 
  11276. source file and COMP\MYBATCH.BTM for the compressed version, or use 
  11277. MYBATCHS.BTM for the source file and MYBATCH.BTM for the compressed file 
  11278. (however, the latter approach may make it more difficult to keep track of the 
  11279. correspondence between the source file and the compressed file). 
  11280.  
  11281. Each of our command processors includes its own version of BATCOMP.EXE, set up 
  11282. to run under the corresponding operating system.  However, the output produced 
  11283. by each program is the same, so a batch file compressed with any version of 
  11284. BATCOMP can be used with any JP Software command processor. 
  11285.  
  11286. If you plan to distribute batch files to users of different platforms, see 
  11287. Special Character Compatibility. 
  11288.  
  11289.  
  11290. ΓòÉΓòÉΓòÉ 8.14. Special Character Compatibility ΓòÉΓòÉΓòÉ
  11291.  
  11292. If you use two or more of our products, or if you want to share aliases and 
  11293. batch files with users of different products, you need to be aware of the 
  11294. differences in three important characters:  the Command Separator (see Multiple 
  11295. Commands), the Escape Character (see Escape Character), and the Parameter 
  11296. Character (see Batch File Parameters). 
  11297.  
  11298. The default values of each of these characters in each product is shown in the 
  11299. following chart: 
  11300.  
  11301.         Product                  Separator     Escape     Parameter
  11302.  
  11303.         4DOS, Take Command/16        ^                       &
  11304.  
  11305.         4NT, 4OS2,                   &           ^            $
  11306.         Take Command/32,
  11307.         Take Command for OS/2
  11308.  
  11309. The up-arrow [] represents the ASCII Ctrl-X character, numeric value 24.) 
  11310.  
  11311. In your batch files and aliases, and even at the command line, you can smooth 
  11312. over these differences in three ways: 
  11313.  
  11314.         *   Select a consistent set of characters from the Options 1 page of 
  11315.             the OPTION dialogs, or with .INI file configuration directives 
  11316.             command.  For example, to set the 4OS2 characters to match 4DOS, 
  11317.             use these lines in 4OS2.INI: 
  11318.  
  11319.                                 CommandSep = ^
  11320.                                 EscapeChar = 
  11321.                                 ParameterChar = &
  11322.  
  11323.         *   Use internal variables that contain the current special character, 
  11324.             rather than using the character itself (see + and =).  For example, 
  11325.             this command: 
  11326.  
  11327.                                 if "%1" == "" (echo Argument missing! ^ quit)
  11328.  
  11329.             will only work if the command separator is a caret. However, this 
  11330.             version works regardless of the current command separator: 
  11331.  
  11332.                                 if "%1" == "" (echo Argument missing! %+ quit)
  11333.  
  11334.         *   In a batch file, use the SETLOCAL command to save the command 
  11335.             separator, escape character, and parameter character when the batch 
  11336.             file starts.  Then use SETDOS as described above to select the 
  11337.             characters you want to use within the batch file.  Use an ENDLOCAL 
  11338.             command at the end of the batch file to restore the previous 
  11339.             settings. 
  11340.  
  11341.  You can also use the SETDOS command to change special characters on the 
  11342.  command line.  However, when setting new special character values on the 
  11343.  command line you must take into account the possibility that one of your new 
  11344.  values will have a current meaning that causes problems with the setting.  For 
  11345.  example, this command: 
  11346.  
  11347.           [c:\] setdos /p&
  11348.  
  11349.  would not set the parameter character to an ampersand [&] in 4OS2 if the 
  11350.  standard 4OS2 special characters were currently in effect.  The & would be 
  11351.  seen as a command separator, and would terminate the SETDOS command before the 
  11352.  parameter character was set.  To work around this, use the escape character 
  11353.  variable %= before each setting to ensure that the following character is not 
  11354.  treated with any special meaning. 
  11355.  
  11356.  For example, the following sequence of commands in a batch file will always 
  11357.  set the special characters correctly to their standard 4DOS values, no matter 
  11358.  what their current setting, and will restore them when the batch file is done: 
  11359.  
  11360.           setlocal
  11361.           setdos /c%=^ /e%= /p%=&
  11362.           .....
  11363.           endlocal
  11364.  
  11365.  A similar sequence can be used to select the standard 4OS2 and 4NT characters, 
  11366.  regardless of the current settings: 
  11367.  
  11368.           setlocal
  11369.           setdos /c%=& /e%=^ /p%=$
  11370.           .....
  11371.           endlocal
  11372.  
  11373.  
  11374. ΓòÉΓòÉΓòÉ 8.15. Command Parsing ΓòÉΓòÉΓòÉ
  11375.  
  11376. Whenever you type something at the command line and press the Enter key, or 
  11377. include a command in a batch file, you have given a command to 4OS2, which must 
  11378. figure out how to execute your command.  If you understand the general process 
  11379. that is used, you will be able to make the best use of the commands. 
  11380. Understanding these steps can be especially helpful when working with complex 
  11381. aliases or batch file commands. 
  11382.  
  11383. To decide what activity to perform, the command processor goes through several 
  11384. steps.  Before it starts, it writes the entire command line (which may contain 
  11385. multiple commands) to the history log file if history logging has been enabled 
  11386. with the LOG /H command, and the command did not come from a batch file.  Then, 
  11387. if the line contains multiple commands, the first command is isolated for 
  11388. processing. 
  11389.  
  11390. 4OS2 begins by dividing the command into a command name and a command tail. 
  11391. The command name is the first word in the command; the tail is everything that 
  11392. follows the command name.  For example, in the command line 
  11393.  
  11394.         dir *.txt /2/p/v
  11395.  
  11396. the command name is "dir", and the command tail is " *.txt /2/p/v". 
  11397.  
  11398. Next 4DOS tries to match the command name against its list of aliases.  If it 
  11399. finds a match between the command name and one of the aliases you've defined, 
  11400. it replaces the command name with the contents of the alias.  (This 
  11401. substitution is done internally and is not normally visible to you).  However, 
  11402. you can view a command line with aliases expanded by pressing Ctrl-F after 
  11403. entering the command at the prompt. 
  11404.  
  11405. If the alias included parameters (%1, %2, etc.), the parameter values are 
  11406. filled in from the text on the command line, and any parameters used in this 
  11407. process are removed from the command line.  The process of replacing a command 
  11408. name that refers to an alias with the contents of the alias, and filling in the 
  11409. alias parameters, is called alias expansion. 
  11410.  
  11411. This expansion of an alias creates a new command name:  the first word of the 
  11412. alias.  This new command name is again tested against the list of aliases, and 
  11413. if a match is found the contents of the new alias is expanded just like the 
  11414. first alias.  This process, called nested alias expansion, continues until the 
  11415. command name no longer refers to an alias. 
  11416.  
  11417. Once it has finished with the aliases, 4OS2 next tries to match the command 
  11418. name with its list of internal commands.  If it is unsuccessful, the command 
  11419. processor knows that it will have to search for a batch file or external 
  11420. program to execute your command. 
  11421.  
  11422. The next step is to locate any batch file or alias parameters, environment 
  11423. variables, internal variables, or variable functions in the command, and 
  11424. replace each one with its value.  This process is called variable expansion. 
  11425.  
  11426. The variable expansion process is modified for certain internal commands, like 
  11427. EXCEPT, IF, and GLOBAL.  These commands are always followed by another command, 
  11428. so variable expansion takes place separately for the original command and the 
  11429. command that follows it. 
  11430.  
  11431. Once all of the aliases and environment variables have been expanded, 4OS2 will 
  11432. echo the complete command to the screen (if command-line echo has been enabled) 
  11433. and write it to the log file (if command logging has been turned on). 
  11434.  
  11435. Before it can actually execute your command, the command processor must scan 
  11436. the command tail to see if it includes redirection or piping.  If so, the 
  11437. proper internal switches are set to send output to an alternate device or to a 
  11438. file, instead of to the screen.  A second process is started at this point, if 
  11439. necessary, to receive any piped output. 
  11440.  
  11441. Finally, it is time to execute the command.  If the command name matches an 
  11442. internal command, 4OS2 will perform the activities you have requested. 
  11443. Otherwise, the command processor searches for an executable (.COM or .EXE) 
  11444. file, a batch file, or a file with an executable extension that matches the 
  11445. command name. 
  11446.  
  11447. Once the internal command or external program has terminated, the command 
  11448. processor saves the result or exit code that the command generated, cleans up 
  11449. any redirection that you specified, and then returns to the original command 
  11450. line to retrieve the next command.  When all of the commands in a command line 
  11451. are finished, the next line is read from the current batch file, or if no batch 
  11452. file is active, the prompt is displayed. 
  11453.  
  11454. You can disable and re-enable several parts of command parsing (for example 
  11455. alias expansion, variable expansion, and redirection) with the SETDOS /X 
  11456. command. 
  11457.  
  11458.  
  11459. ΓòÉΓòÉΓòÉ 8.16. Argument Quoting ΓòÉΓòÉΓòÉ
  11460.  
  11461. As it parses the command line, 4OS2 looks for the ampersand [&] command 
  11462. separator, conditional commands (|| or &&), white space (spaces, tabs, and 
  11463. commas), percent signs [%] which indicate variables to be expanded, and 
  11464. redirection and piping characters (>, <, or |). 
  11465.  
  11466. Normally, these special characters cannot be passed to a command as part of an 
  11467. argument.  However, you can include any of the special characters in an 
  11468. argument by enclosing the entire argument in single back quotes [`] or double 
  11469. quotes ["].  Although both back quotes and double quotes will let you build 
  11470. arguments that include special characters, they do not work the same way. 
  11471.  
  11472. No alias or variable expansion is performed on an argument enclosed in back 
  11473. quotes.  Redirection symbols inside the back quotes are ignored.  The back 
  11474. quotes are removed from the command line before the command is executed. 
  11475.  
  11476. No alias expansion is performed on expressions enclosed in double quotes. 
  11477. Redirection symbols inside double quotes are ignored. However, variable 
  11478. expansion is performed on expressions inside double quotes.  The double quotes 
  11479. themselves will be passed to the command as part of the argument. 
  11480.  
  11481. For example, suppose you have a batch file CHKNAME.BTM which expects a name as 
  11482. its first parameter (%1).  Normally the name is a single word.  If you need to 
  11483. pass a two-word name with a space in it to this batch file you could use the 
  11484. command: 
  11485.  
  11486.         [c:\] chkname `MY NAME`
  11487.  
  11488. Inside the batch file, %1 will have the value MY NAME, including the space. 
  11489. The back quotes caused 4OS2 to pass the string to the batch file as a single 
  11490. argument.  The quotes keep characters together and reduce the number of 
  11491. arguments in the line. 
  11492.  
  11493. For a more complex example, suppose the batch file QUOTES.BAT contains the 
  11494. following commands: 
  11495.  
  11496.         @echo off
  11497.         echo Arg1 = %1
  11498.         echo Arg2 = %2
  11499.         echo Arg3 = %3
  11500.  
  11501. and that the environment variable FORVAR has been defined with this command: 
  11502.  
  11503.         [c:\] set FORVAR=for
  11504.  
  11505. Now, if you enter the command 
  11506.  
  11507.         [c:\] quotes `Now is the time %%forvar` all good
  11508.  
  11509. the output from QUOTES.BAT will look like this: 
  11510.  
  11511.         Arg1 = Now is the time %forvar
  11512.         Arg2 = all
  11513.         Arg3 = good
  11514.  
  11515. But if you enter the command 
  11516.  
  11517.         [c:\] quotes "Now is the time %%forvar" all good
  11518.  
  11519. the output from QUOTES.BAT will look like this: 
  11520.  
  11521.         Arg1 = "Now is the time for"
  11522.         Arg2 = all
  11523.         Arg3 = good
  11524.  
  11525. Notice that in both cases, the quotes keep characters together and reduce the 
  11526. number of arguments in the line. 
  11527.  
  11528. The following example has 7 command-line arguments, while the examples above 
  11529. only have 3: 
  11530.  
  11531.         [c:\] quotes Now is the time %%forvar all good
  11532.  
  11533. (The double percent signs are needed in each case because the argument is 
  11534. parsed twice, once when passed to the batch file and again in the ECHO 
  11535. command.) 
  11536.  
  11537. When an alias is defined in a batch file or from the command line, its argument 
  11538. can be enclosed in back quotes to prevent the expansion of replaceable 
  11539. parameters, variables, and multiple commands until the alias is invoked.  See 
  11540. ALIAS for details. 
  11541.  
  11542. You can disable and re-enable back quotes and double quotes with the SETDOS /X 
  11543. command. 
  11544.  
  11545.  
  11546. ΓòÉΓòÉΓòÉ 8.17. REXX Support ΓòÉΓòÉΓòÉ
  11547.  
  11548. REXX is a a powerful file and text processing language developed by IBM, and 
  11549. available on many PC and other platforms.  REXX is an ideal extension to the 
  11550. 4OS2 batch language, especially if you need advanced string processing 
  11551. capabilities. 
  11552.  
  11553. The REXX language is not built into 4OS2.  REXX language support is provided in 
  11554. OS/2 2.0 and above, and you can also purchase add-on REXX software such as 
  11555. Enterprise Alternatives' Enterprise REXX, available for Windows 3.x, Windows 
  11556. 95, and Windows NT; or Quercus's Personal REXX, available for DOS, OS/2, 
  11557. Windows 3.x, Windows 95, and Windows NT.  (If you want to learn about or 
  11558. purchase one of these REXX packages, contact JP Software's sales department for 
  11559. more information.) 
  11560.  
  11561. REXX programs are stored in .CMD files.  4OS2 checks to see if the first two 
  11562. characters on the first line of a .CMD file are [/*], the beginning of a REXX 
  11563. comment.  If so, it passes the file to OS/2's built-in REXX facility for 
  11564. processing.  If Personal REXX for OS/2 is installed, it automatically replaces 
  11565. OS/2's built-in REXX, and handles all REXX commands passed by 4OS2. 
  11566.  
  11567. Both Personal REXX and OS/2's built-in REXX extend the interface between REXX 
  11568. and 4OS2 by allowing you to invoke 4OS2 commands from within a REXX program. 
  11569.  
  11570. When you send a command from a REXX program back to the command processor to be 
  11571. executed (for example, if you execute a DIR command within a REXX script), the 
  11572. REXX software must use the correctaddre for the command processor.  In most 
  11573. cases it is best to use the default address of CMD, which is set up 
  11574. automatically by 4OS2.  If you choose to use an explicit address via the REXX 
  11575. ADDRESS command, you can use either CMD or 4OS2. 
  11576.  
  11577. For details on communication between REXX and the command processor, or for 
  11578. more information on any aspect of REXX, see your REXX documentation. 
  11579.  
  11580.  
  11581. ΓòÉΓòÉΓòÉ 8.18. EXTPROC Support ΓòÉΓòÉΓòÉ
  11582.  
  11583. For compatiblility with CMD.EXE, 4OS2 offers an external processor (EXTPROC) 
  11584. option for batch files that lets you define an external program to process a 
  11585. particular .CMD file.  To identify a .CMD file to be used with an external 
  11586. processor, place the string "EXTPROC" as the first word on the first line of 
  11587. the file, followed by the name of the external program that should be called. 
  11588. 4OS2 will start the program and pass it the name of the .CMD file and any 
  11589. command-line arguments that were entered. 
  11590.  
  11591. For example, suppose GETDATA.CMD contains the following lines: 
  11592.  
  11593.         EXTPROC D:\DATAACQ\DATALOAD.EXE
  11594.         OPEN PORT1
  11595.         READ 4000
  11596.         DISKWRITE D:\DATAACQ\PORT1\RAW
  11597.  
  11598. Then if you entered the command: 
  11599.  
  11600.         [d:\dataacq] getdata /p17
  11601.  
  11602. 4OS2 would read the GETDATA.CMD file, determine that it began with an EXTPROC 
  11603. command, read the name of the processor program, and then execute the command: 
  11604.  
  11605.         D:\DATAACQ\DATALOAD.EXE D:\DATAACQ\GETDATA.CMD /p17
  11606.  
  11607. The hypothetical DATALOAD.EXE program would then be responsible for reopening 
  11608. the GETDATA.CMD file, ignoring the EXTPROC line at the start, and interpreting 
  11609. the other instructions in the file. It would also have to respond appropriately 
  11610. to the command-line parameter entered (/p17). 
  11611.  
  11612. Do not try to use 4OS2 or Take Command as the external processor named on the 
  11613. EXTPROC line in the .CMD file.  It will interpret the EXTPROC line as a command 
  11614. to re-open themselves.  The result will be an infinite loop that will continue 
  11615. until the computer runs out of resources and locks up. 
  11616.  
  11617.  
  11618. ΓòÉΓòÉΓòÉ 9. Environment Variables and Functions ΓòÉΓòÉΓòÉ
  11619.  
  11620. The environment is a collection of information about your computer that every 
  11621. program receives.  Each entry in the environment consists of a variable name, 
  11622. followed by an equal sign and a string of text.  You can automatically 
  11623. substitute the text for the variable name in any command.  To create the 
  11624. substitution, include a percent sign [%] and a variable name on the command 
  11625. line or in an alias or batch file. 
  11626.  
  11627. The following environment variables have special meanings in 4OS2: 
  11628.  
  11629.             CDPATH 
  11630.             CMDLINE 
  11631.             COLORDIR 
  11632.             COMSPEC 
  11633.             FILECOMPLETION 
  11634.             PATH 
  11635.             PATHEXT 
  11636.             PROMPT 
  11637.  
  11638.  4OS2 also supports two special types of variables.  Internal variables are 
  11639.  similar to environment variables, but are stored internally within 4OS2, and 
  11640.  are not visible in the environment.  They provide information about your 
  11641.  system for use in batch files and aliases.  Variable functions are referenced 
  11642.  like environment variables, but perform additional functions like file 
  11643.  handling, string manipulation and arithmetic calculations. 
  11644.  
  11645.  In 4OS2 the size of the environment is set automatically, and increased as 
  11646.  needed when you add variables. 
  11647.  
  11648.  The SET command is used to create environment variables. For example, you can 
  11649.  create a variable named BACKUP like this: 
  11650.  
  11651.           [c:\] set BACKUP=*.bak;*.bk!;*.bk
  11652.  
  11653.  If you then type 
  11654.  
  11655.           [c:\] del %BACKUP
  11656.  
  11657.  it is equivalent to the following command: 
  11658.  
  11659.           del *.bak;*.bk!;*.bk
  11660.  
  11661.  Environment variable names may contain any alphabetic or numeric characters, 
  11662.  the underscore character [_], and the dollar sign [$].  You can force 
  11663.  acceptance of other characters by including the full variable name in square 
  11664.  brackets, like this: %[AB##2].  You can also "nest" environment variables 
  11665.  using square brackets.  For example %[%var1] means "the contents of the 
  11666.  variable whose name is stored in VAR1".  A variable referenced with this 
  11667.  technique cannot contain more than 255 characters of information.  Nested 
  11668.  variable expansion can be disabled with the SETDOS /X command. 
  11669.  
  11670.  Environment variables may contain alias names.  The command processor will 
  11671.  substitute the variable value for the name, then check for any alias name 
  11672.  which may have been included within the variable's value.  For example, the 
  11673.  following commands would generate a 2-column directory of the .TXT files: 
  11674.  
  11675.           [c:\] alias d2 dir /2
  11676.           [c:\] set cmd=d2
  11677.           [c:\] %cmd *.txt
  11678.  
  11679.  The trailing percent sign that was traditionally required for environment 
  11680.  variable names is not usually required in 4OS2, which accept any character 
  11681.  that cannot be part of a variable name (including a space) as the terminator. 
  11682.  However, the trailing percent can be used to maintain compatibility. 
  11683.  
  11684.  The trailing percent sign is needed if you want to join two variable values. 
  11685.  The following examples show the possible interactions between variables and 
  11686.  literal strings.  First, create two environment variables called ONE and TWO 
  11687.  this way: 
  11688.  
  11689.           [c:\] set ONE=abcd
  11690.           [c:\] set TWO=efgh
  11691.  
  11692.  Now the following combinations produce the output text shown: 
  11693.  
  11694.           %ONE%TWO            abcdTWO   ("%ONE%" + "TWO")
  11695.           %ONE%TWO%           abcdTWO   ("%ONE%" + "TWO%")
  11696.           %ONE%%TWO           abcdefgh  ("%ONE%" + "%TWO")
  11697.           %ONE%%TWO%          abcdefgh  ("%ONE%" + "%TWO%")
  11698.           %ONE%[TWO]          abcd[TWO] ("%ONE%" + "[TWO]")
  11699.           %ONE%[TWO]%         abcd[TWO] ("%ONE%" + "[TWO]%")
  11700.           %[ONE]%TWO          abcdefgh  ("%[ONE]" + "%TWO")
  11701.           %[ONE]%TWO%         abcdefgh  ("%[ONE]" + "%TWO%")
  11702.  
  11703.  If you want to pass a percent sign to a command, or a string which includes a 
  11704.  percent sign, you must use two percent signs in a row. Otherwise, the single 
  11705.  percent sign will be seen as the beginning of a variable name and will not be 
  11706.  passed on to the command.  For example, to display the string "We're with you 
  11707.  100%" you would use the command: 
  11708.  
  11709.           echo We're with you 100%%
  11710.  
  11711.  You can also use back quotes around the text, rather than a double percent 
  11712.  sign.  See Argument Quoting for details. 
  11713.  
  11714.  
  11715. ΓòÉΓòÉΓòÉ 9.1. CDPATH ΓòÉΓòÉΓòÉ
  11716.  
  11717. CDPATH 
  11718.  
  11719.  
  11720. ΓòÉΓòÉΓòÉ 9.2. CMDLINE ΓòÉΓòÉΓòÉ
  11721.  
  11722. CMDLINE is the fully expanded text of the currently executing command line. 
  11723. CMDLINE is set just before invoking any .COM, .EXE, .BTM, .BAT, or .CMD file. 
  11724. If a command line is prefaced with an "@" to prevent echoing, it will not be 
  11725. put in CMDLINE, and any previous CMDLINE variable will be removed from the 
  11726. environment. 
  11727.  
  11728.  
  11729. ΓòÉΓòÉΓòÉ 9.3. COLORDIR ΓòÉΓòÉΓòÉ
  11730.  
  11731. COLORDIR controls directory display colors used by DIR and SELECT.  See the 
  11732. Color-Coded Directories topic under the DIR command for a complete description 
  11733. of the format of this variable. 
  11734.  
  11735.  
  11736. ΓòÉΓòÉΓòÉ 9.4. COMSPEC ΓòÉΓòÉΓòÉ
  11737.  
  11738. COMSPEC contains the full path and name of 4OS2.  For example, if 4OS2 is 
  11739. stored in the directory C:\4OS2, the COMSPEC variable should be set to 
  11740. C:\4OS2\4OS2.EXE.  COMSPEC is used by applications which need to find 4OS2 to 
  11741. implement a "shell to the command prompt" feature. 
  11742.  
  11743. You can set the COMSPEC variable by specifying the COMSPEC path with a SET 
  11744. COMSPEC command in CONFIG.SYS, or including the COMSPEC path on the 4OS2 
  11745. startup command line. 
  11746.  
  11747.  
  11748. ΓòÉΓòÉΓòÉ 9.5. FILECOMPLETION ΓòÉΓòÉΓòÉ
  11749.  
  11750. FILECOMPLETION sets the files made available during filename completion for 
  11751. selected commands.  See Customizing Filename Completion in the Filename 
  11752. Completion topic for a complete description of the format of this variable. 
  11753.  
  11754.  
  11755. ΓòÉΓòÉΓòÉ 9.6. PATH ΓòÉΓòÉΓòÉ
  11756.  
  11757. PATH is a list of directories that 4OS2 will search for executable files that 
  11758. aren't in the current directory.  PATH may also be used by some application 
  11759. programs to find their own files.  See the PATH command for a full description 
  11760. of this variable. 
  11761.  
  11762.  
  11763. ΓòÉΓòÉΓòÉ 9.7. PATHEXT ΓòÉΓòÉΓòÉ
  11764.  
  11765. PATHEXT can be used to select the extensions to look for when searching the 
  11766. PATH for an executable file.  It consists of a list of extensions, separated by 
  11767. semicolons. For example, to replicate the default extension list used by 4OS2: 
  11768.  
  11769.      set pathext=.com;.exe;.btm;.cmd;.bat
  11770.  
  11771. PATHEXT is ignored unless the PathExt setting is set to Yes in 4OS2.INI. Once 
  11772. PATHEXT is enabled the standard path search for .COM, .EXE, .BTM, .CMD, and 
  11773. .BAT files is replaced by a search for files with the extensions listed in 
  11774. PATHEXT, in the order listed there. 
  11775.  
  11776. Enabling PATHEXT affects only the standard path search, it does not affect the 
  11777. subsequent searches for files with executable extensions.  PATHEXT is supported 
  11778. for compatibility reasons but should not generally be used as a substitute for 
  11779. executable extensions, which are much more flexible.  For more details on path 
  11780. searches, see the PATH command. 
  11781.  
  11782. CAUTION:  If you set PathExt = Yes in 4OS2.INI and then fail to set the PATHEXT 
  11783. variable, path searches will fail as there will be no extensions for which to 
  11784. search! 
  11785.  
  11786.  
  11787. ΓòÉΓòÉΓòÉ 9.8. PROMPT ΓòÉΓòÉΓòÉ
  11788.  
  11789. PROMPT defines the command-line prompt.  It can be set or changed with the 
  11790. PROMPT command. 
  11791.  
  11792.  
  11793. ΓòÉΓòÉΓòÉ 9.9. Internal Variables ΓòÉΓòÉΓòÉ
  11794.  
  11795. Internal variables are special environment variables built into 4OS2 to provide 
  11796. information about your system.  They are not actually stored in the 
  11797. environment, but can be used in commands, aliases, and batch files just like 
  11798. any other environment variable. 
  11799.  
  11800. The values of these variables are stored internally in 4OS2, and cannot be 
  11801. changed with the SET, UNSET, or ESET command.  However, you can override any of 
  11802. these variables by defining a new variable with the same name. 
  11803.  
  11804. The list below gives a one-line description of each variable, and a 
  11805. cross-reference which selects a full screen help topic on that variable. Most 
  11806. of the variables are simple enough that the one-line description is sufficient. 
  11807. However, for those variables marked with an asterisk [*], the cross-reference 
  11808. topic contains some additional information you may wish to review.  You can 
  11809. also obtain help on any variable with a HELP variable name command at the 
  11810. prompt (this is why each variable has its own topic, in addition to its 
  11811. appearance in the list below). 
  11812.  
  11813. See the discussion after the variable list for some additional information, and 
  11814. examples of how these variables can be used.  For additional examples, see the 
  11815. EXAMPLES.BTM file which came with 4OS2. 
  11816.  
  11817. The variables are: 
  11818.  
  11819. Hardware status 
  11820.  
  11821.         _CPU            CPU type (86, 186, 200, 386, 486, 586) 
  11822.         _MONITOR        Monitor type (mono or color) 
  11823.         _NDP            Coprocessor type (0, 87, 287, 387) 
  11824.         _VIDEO          Video board type (mono, cga, ega, vga, xga, 8514, or 
  11825.                         IA/A) 
  11826.  
  11827.  Operating system and software status 
  11828.  
  11829.         _ANSI           ANSI status (always 1 in 4OS2) 
  11830.         _APMAC          * APM AC line status 
  11831.         _APMBATT        * APM battery status 
  11832.         _APMLIFE        * APM battery life 
  11833.         _BOOT           Boot drive letter, without a colon 
  11834.         _CI             Current cursor shape in insert mode 
  11835.         _CO             Current cursor shape in overstrike mode 
  11836.         _CODEPAGE       Current code page number 
  11837.         _COUNTRY        Current country code 
  11838.         _DOS            * Operating system (DOS, OS2, etc.) 
  11839.         _DOSVER         * Operating system version (2.1, 3.0, etc.) 
  11840.         _KBHIT          Keystroke waiting in buffer (0 or 1) 
  11841.         _MOUSE          Mouse driver flag (always 1 in 4OS2) 
  11842.  
  11843.  Command processor status 
  11844.  
  11845.         _4VER           4OS2 version (3.01, 3.02, etc.) 
  11846.         _BATCH          Batch nesting level 
  11847.         _BATCHLINE      Current line number in current batch file 
  11848.         _BATCHNAME      Name of current batch file 
  11849.         _CMDPROC        Command processor name 
  11850.         _DNAME          Name of file used to store file descriptions 
  11851.         _HLOGFILE       Current history log file name 
  11852.         _LOGFILE        Current log file name 
  11853.         _PID            4OS2 process ID (numeric) 
  11854.         _PIPE           Whether running in a pipe 
  11855.         _PPID           Parent process ID (numeric) 
  11856.         _PTYPE          OS/2 session type (AVIO, DT, FS, PM) 
  11857.         _SHELL          Shell level (0, 1, 2, ...) 
  11858.         _SID            Current OS/2 session ID 
  11859.         _TRANSIENT      * Transient shell flag (0 or 1) 
  11860.         _ WINTITLE      Current window title 
  11861.  
  11862.  Screen and color 
  11863.  
  11864.         _BG             Background color at cursor position 
  11865.         _COLUMN         Current cursor column 
  11866.         _COLUMNS        Screen width 
  11867.         _FG             Foreground color at cursor position 
  11868.         _ROW            Current cursor row 
  11869.         _ROWS           Screen height 
  11870.         _XPIXELS        Physical screen horizontal size 
  11871.         _YPIXELS        Physical screen vertical size 
  11872.  
  11873.  Drives and directories 
  11874.  
  11875.         _CWD            Current drive and directory (d:\path) 
  11876.         _CWDS           Current drive and directory with trailing \ (d:\path\) 
  11877.         _CWP            Current directory (\path) 
  11878.         _CWPS           Current directory with trailing \ (\path\) 
  11879.         _DISK           Current drive (C, D, etc.) 
  11880.         _LASTDISK       Last possible drive (E, F, etc.) 
  11881.  
  11882.  Dates and times 
  11883.  
  11884.         _DATE           * Current date (mm-dd-yy) 
  11885.         _DAY            Day of the month (1 - 31) 
  11886.         _DOW            Day of the week (Mon, Tue, Wed, etc.) 
  11887.         _DOWI           Integer day of the week (1 = Sunday, 2= Monday, etc.) 
  11888.         _DOY            Day of the year (1 - 366) 
  11889.         _HOUR           Hour (0 - 23) 
  11890.         _MINUTE         Minute (0 - 59) 
  11891.         _MONTH          Month of the year (1 - 12) 
  11892.         _SECOND         Second (0 - 59) 
  11893.         _TIME           * Current time (hh:mm:ss) 
  11894.         _YEAR           Year (1980 - 2099) 
  11895.  
  11896.  Error codes 
  11897.  
  11898.         ?               * Exit code, last external program 
  11899.         _?              * Exit code, last internal command 
  11900.         _SYSERR         * Last OS/2 error code 
  11901.  
  11902.  Compatibility 
  11903.  
  11904.         =               * Substitutes escape character 
  11905.         +               * Substitutes command separator 
  11906.  
  11907.  Additional Notes 
  11908.  
  11909.  These internal variables are often used in batch files and aliases to examine 
  11910.  system resources and adjust to the current computer settings.  You can examine 
  11911.  the contents of any internal variable (except %= and %+) from the command line 
  11912.  with a command like this: 
  11913.  
  11914.           [c:\] echo %variablename
  11915.  
  11916.  On disk volumes which do not support long filenames, variables which return a 
  11917.  path or file name will return their result in upper or lower case depending on 
  11918.  the value of the SETDOS /U switch or the UpperCase directive in the .INI file. 
  11919.  On volumes which do support long filenames, these variables will return names 
  11920.  as they are stored on the disk and no case shifting will be performed. 
  11921.  Returned filename values which include long filenames are not quoted 
  11922.  automatically; you must add quotes yourself if they are required for your use 
  11923.  of the variable value (see Argument Quoting). 
  11924.  
  11925.  Some variables return values based on information provided by your operating 
  11926.  system.  These variables will only return correct information if the operating 
  11927.  system provides it.  For example, _APMBATT will not return accurate results if 
  11928.  your operating system and Advanced Power Management drivers do not provide 
  11929.  correct information on battery status to the command processor. 
  11930.  
  11931.  Examples 
  11932.  
  11933.  You can use these variables in a wide variety of ways depending on your needs. 
  11934.  Here are just a few examples.  For additional examples, see the EXAMPLES.BTM 
  11935.  file which came with 4OS2. 
  11936.  
  11937.  Some of these examples rely on the IF and IFF commands to test the value of a 
  11938.  variable and perform different actions based on that value. 
  11939.  
  11940.  In a batch file, set the color based on the video card type: 
  11941.  
  11942.           iff "%_video"=="mono" then
  11943.             color bright white on black
  11944.           else
  11945.             color bright white on blue
  11946.           endiff
  11947.  
  11948.  Store the current date and time in a file, then save the output of a DIR 
  11949.  command in the same file: 
  11950.  
  11951.           echo Directory as of %_date %_time > dirsave
  11952.           dir >> dirsave
  11953.  
  11954.  Set up a prompt for the primary shell which displays the time and current 
  11955.  directory, and a different one for secondary shells which includes the shell 
  11956.  level rather than the time (see PROMPT for details about setting the prompt). 
  11957.  Also set different background colors for the two shells, without changing the 
  11958.  foreground color.  You might use a sequence like this in your 4START file (see 
  11959.  Automatic Batch Files): 
  11960.  
  11961.           iff %_shell==0 then
  11962.             prompt $t $p$g
  11963.             color %_fg on blue
  11964.           else
  11965.             prompt [$z] $p$g
  11966.             color %_fg on cyan
  11967.           endiff
  11968.  
  11969.  
  11970. ΓòÉΓòÉΓòÉ 9.9.1. ? ΓòÉΓòÉΓòÉ
  11971.  
  11972. ? contains the exit code of the last external command.  Many programs return a 
  11973. "0" to indicate success and a non-zero value to signal an error.  However, not 
  11974. all programs return an exit code.  If no explicit exit code is returned, the 
  11975. value of %? is undefined. 
  11976.  
  11977.  
  11978. ΓòÉΓòÉΓòÉ 9.9.2. _? ΓòÉΓòÉΓòÉ
  11979.  
  11980. _? contains the exit code of the last internal command.  It is set to "0" if 
  11981. the command was successful, "1" if a usage error occurred, "2" if another 
  11982. command processor error or an operating system error occurred, or "3" if the 
  11983. command was interrupted by Ctrl-C or Ctrl-Break.  You must use or save this 
  11984. value immediately, because it is set by every internal command. 
  11985.  
  11986.  
  11987. ΓòÉΓòÉΓòÉ 9.9.3. = ΓòÉΓòÉΓòÉ
  11988.  
  11989. = returns the current escape character.  Use this variable, instead of the 
  11990. actual escape character, if you want your batch files and aliases to work 
  11991. regardless of how the escape character is defined.  For example, if the escape 
  11992. character is a caret [^] (the default in 4OS2) both of the commands below will 
  11993. send a form feed to the printer.  However, if the escape character has been 
  11994. changed,  the first command will send the string "^f" to the printer, while the 
  11995. second command will continue to work as intended. 
  11996.  
  11997.         echos ^f > prn
  11998.         echos %=f > prn
  11999.  
  12000.  
  12001. ΓòÉΓòÉΓòÉ 9.9.4. + ΓòÉΓòÉΓòÉ
  12002.  
  12003. + returns the current command separator.  Use this variable, instead of the 
  12004. actual command separator, if you want your batch files and aliases to work 
  12005. regardless of how the command separator is defined.  For example, if the 
  12006. command separator is an ampersand [&] (the default in 4OS2) both of the 
  12007. commands below will display "Hello" on one line and "world" on the next. 
  12008. However, if the command separator has been changed the first command will 
  12009. display "Hello & echo world", while the second command will continue to work as 
  12010. intended. 
  12011.  
  12012.         echo Hello & echo world
  12013.         echo Hello %+ echo world
  12014.  
  12015.  
  12016. ΓòÉΓòÉΓòÉ 9.9.5. _4VER ΓòÉΓòÉΓòÉ
  12017.  
  12018. _4VER is the current 4OS2 version (for example, "3.02"). The current decimal 
  12019. character is used to separate the major and minor version numbers (see 
  12020. DecimalChar) for details. 
  12021.  
  12022.  
  12023. ΓòÉΓòÉΓòÉ 9.9.6. _ANSI ΓòÉΓòÉΓòÉ
  12024.  
  12025. _ANSI is always "1" in 4OS2.  (4OS2 enables OS/2's ANSI support, and assumes 
  12026. that it remains enabled.) 
  12027.  
  12028.  
  12029. ΓòÉΓòÉΓòÉ 9.9.7. _APMAC ΓòÉΓòÉΓòÉ
  12030.  
  12031. _APMAC is the Advanced Power Management AC line status ("on-line", "off-line", 
  12032. or "unknown").  An empty string is returned if APM is not installed on your 
  12033. system. 
  12034.  
  12035.  
  12036. ΓòÉΓòÉΓòÉ 9.9.8. _APMBATT ΓòÉΓòÉΓòÉ
  12037.  
  12038. _APMBATT is the Advanced Power Management battery status ("high", "low", 
  12039. "critical", "charging", or "unknown").  An empty string is returned if APM is 
  12040. not installed. 
  12041.  
  12042.  
  12043. ΓòÉΓòÉΓòÉ 9.9.9. _APMLIFE ΓòÉΓòÉΓòÉ
  12044.  
  12045. _APMLIFE is the Advanced Power Management remaining battery life (0 - 100 or 
  12046. "unknown").  An empty string is returned if APM is not installed. 
  12047.  
  12048.  
  12049. ΓòÉΓòÉΓòÉ 9.9.10. _BATCH ΓòÉΓòÉΓòÉ
  12050.  
  12051. _BATCH is the current batch nesting level.  It is "0" if no batch file is 
  12052. currently being processed. 
  12053.  
  12054.  
  12055. ΓòÉΓòÉΓòÉ 9.9.11. _BATCHLINE ΓòÉΓòÉΓòÉ
  12056.  
  12057. _BATCHLINE is the current line number in the current batch file.  It is "-1" if 
  12058. no batch file is currently being processed. 
  12059.  
  12060.  
  12061. ΓòÉΓòÉΓòÉ 9.9.12. _BATCHNAME ΓòÉΓòÉΓòÉ
  12062.  
  12063. _BATCHNAME is the full path and file name of the current batch file.  It is an 
  12064. empty string if no batch file is currently being processed. 
  12065.  
  12066.  
  12067. ΓòÉΓòÉΓòÉ 9.9.13. _BG ΓòÉΓòÉΓòÉ
  12068.  
  12069. _BG is a string containing the first three characters of the screen background 
  12070. color at the current cursor location (for example, "Bla"). 
  12071.  
  12072.  
  12073. ΓòÉΓòÉΓòÉ 9.9.14. _BOOT ΓòÉΓòÉΓòÉ
  12074.  
  12075. _BOOT is the boot drive letter, without a colon. 
  12076.  
  12077.  
  12078. ΓòÉΓòÉΓòÉ 9.9.15. _CI ΓòÉΓòÉΓòÉ
  12079.  
  12080. _CI is the insert-mode cursor shape, as a percentage (see SETDOS /S and the 
  12081. CursorIns directive). 
  12082.  
  12083.  
  12084. ΓòÉΓòÉΓòÉ 9.9.16. _CMDPROC ΓòÉΓòÉΓòÉ
  12085.  
  12086. _CMDPROC is the name of the current command processor.  Each JP Software 
  12087. command processor returns a different value, as follows: 
  12088.  
  12089.         Product                         Returns 
  12090.  
  12091.         4DOS                            "4DOS" 
  12092.         4OS2                            "4OS2" 
  12093.         4NT                             "4NT" 
  12094.         Take Command/16                 "TCMD" 
  12095.         Take Command/32                 "TCMD32" 
  12096.         Take Command for OS/2           "TCMDOS2" 
  12097.  
  12098.  This variable is useful if you have batch files running in more than one 
  12099.  environment, and need to take different actions depending on the underlying 
  12100.  command processor.  If you also need to determine the operating system, see 
  12101.  _DOS. 
  12102.  
  12103.  
  12104. ΓòÉΓòÉΓòÉ 9.9.17. _CO ΓòÉΓòÉΓòÉ
  12105.  
  12106. _CO is the overstrike-mode cursor shape, as a percentage (see SETDOS /S and the 
  12107. CursorOver directive). 
  12108.  
  12109.  
  12110. ΓòÉΓòÉΓòÉ 9.9.18. _CODEPAGE ΓòÉΓòÉΓòÉ
  12111.  
  12112. _CODEPAGE is the current code page number (see CHCP). 
  12113.  
  12114.  
  12115. ΓòÉΓòÉΓòÉ 9.9.19. _COLUMN ΓòÉΓòÉΓòÉ
  12116.  
  12117. _COLUMN is the current cursor column (for example, "0" for the left side of the 
  12118. screen). 
  12119.  
  12120.  
  12121. ΓòÉΓòÉΓòÉ 9.9.20. _COLUMNS ΓòÉΓòÉΓòÉ
  12122.  
  12123. _COLUMNS is the current number of screen columns (for example, "80"). 
  12124.  
  12125.  
  12126. ΓòÉΓòÉΓòÉ 9.9.21. _COUNTRY ΓòÉΓòÉΓòÉ
  12127.  
  12128. _COUNTRY is the current country code. 
  12129.  
  12130.  
  12131. ΓòÉΓòÉΓòÉ 9.9.22. _CPU ΓòÉΓòÉΓòÉ
  12132.  
  12133. _CPU is the CPU type: 
  12134.  
  12135.         86      8086 and 8088 
  12136.         186     80186 and 80188 
  12137.         200     NEC V20 and V30 
  12138.         286     80286 
  12139.         386     i386 
  12140.         486     i486 
  12141.         586     Pentium 
  12142.         686     Pentium Pro 
  12143.  
  12144.  
  12145. ΓòÉΓòÉΓòÉ 9.9.23. _CWD ΓòÉΓòÉΓòÉ
  12146.  
  12147. _CWD is the current working directory in the format d:\pathname. 
  12148.  
  12149.  
  12150. ΓòÉΓòÉΓòÉ 9.9.24. _CWDS ΓòÉΓòÉΓòÉ
  12151.  
  12152. _CWDS has the same value as CWD, except it ends the pathname with a backslash 
  12153. [\]. 
  12154.  
  12155.  
  12156. ΓòÉΓòÉΓòÉ 9.9.25. _CWP ΓòÉΓòÉΓòÉ
  12157.  
  12158. _CWP is the current working directory in the format \pathname. 
  12159.  
  12160.  
  12161. ΓòÉΓòÉΓòÉ 9.9.26. _CWPS ΓòÉΓòÉΓòÉ
  12162.  
  12163. _CWPS has the same value as CWP, except it ends the pathname with a backslash 
  12164. [\]. 
  12165.  
  12166.  
  12167. ΓòÉΓòÉΓòÉ 9.9.27. _DATE ΓòÉΓòÉΓòÉ
  12168.  
  12169. _DATE contains the current system date, in the format mm-dd-yy (U.S.), dd-mm-yy 
  12170. (Europe), or yy-mm-dd (Japan). 
  12171.  
  12172.  
  12173. ΓòÉΓòÉΓòÉ 9.9.28. _DAY ΓòÉΓòÉΓòÉ
  12174.  
  12175. _DAY is the current day of the month (1 to 31). 
  12176.  
  12177.  
  12178. ΓòÉΓòÉΓòÉ 9.9.29. _DISK ΓòÉΓòÉΓòÉ
  12179.  
  12180. _DISK is the current disk drive, without a colon (for example, "C"). 
  12181.  
  12182.  
  12183. ΓòÉΓòÉΓòÉ 9.9.30. _DNAME ΓòÉΓòÉΓòÉ
  12184.  
  12185. _DNAME is the name of the file used to store file descriptions.  It can be 
  12186. changed with the DescriptionName directive in 4OS2.INI or the SETDOS /D 
  12187. command. 
  12188.  
  12189.  
  12190. ΓòÉΓòÉΓòÉ 9.9.31. _DOS ΓòÉΓòÉΓòÉ
  12191.  
  12192. _DOS is the operating system and command processor type.  Each JP Software 
  12193. command processor returns a different value depending on the operating system, 
  12194. as follows: 
  12195.  
  12196.         ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  12197.         Γöé                     ΓöéDOSΓöéOS/2ΓöéWindowsΓöéWindowsΓöéWindowsΓöéWindowsΓöé
  12198.         Γöé                     Γöé   Γöé    Γöé3.x    Γöé95     Γöé98     ΓöéNT     Γöé
  12199.         Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12200.         Γöé4DOS                 ΓöéDOSΓöéDOS ΓöéDOS    ΓöéDOS    ΓöéDOS    Γöé       Γöé
  12201.         Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12202.         Γöé4OS2                 Γöé   ΓöéOS2 Γöé       Γöé       Γöé       Γöé       Γöé
  12203.         Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12204.         Γöé4NT                  Γöé   Γöé    Γöé       ΓöéWIN95C ΓöéWIN98C ΓöéNT     Γöé
  12205.         Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12206.         ΓöéTake Command/16      Γöé   ΓöéWIN ΓöéWIN    Γöé       Γöé       Γöé       Γöé
  12207.         Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12208.         ΓöéTake Command/32      Γöé   Γöé    Γöé       ΓöéWIN95  ΓöéWIN98  ΓöéWIN32  Γöé
  12209.         Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  12210.         ΓöéTake Command for OS/2Γöé   ΓöéPM  Γöé       Γöé       Γöé       Γöé       Γöé
  12211.         ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  12212.  
  12213.  This variable is useful if you have batch files running in more than one 
  12214.  environment, and need to take different actions depending on the underlying 
  12215.  operating environment or command processor.  If you want the current command 
  12216.  processor name, use _CMDPROC. 
  12217.  
  12218.  
  12219. ΓòÉΓòÉΓòÉ 9.9.32. _DOSVER ΓòÉΓòÉΓòÉ
  12220.  
  12221. _DOSVER is the current operating system version (for example, "4.00"). The 
  12222. current decimal character is used to separate the major and minor version 
  12223. numbers (see DecimalChar) for details. 
  12224.  
  12225.  
  12226. ΓòÉΓòÉΓòÉ 9.9.33. _DOW ΓòÉΓòÉΓòÉ
  12227.  
  12228. _DOW is the first three characters of the current day of the week ("Mon", 
  12229. "Tue", "Wed", etc.). 
  12230.  
  12231.  
  12232. ΓòÉΓòÉΓòÉ 9.9.34. _DOWI ΓòÉΓòÉΓòÉ
  12233.  
  12234. _DOWI is the current day of the week as an integer (1 = Sunday, 2 = Monday, 
  12235. etc.). 
  12236.  
  12237.  
  12238. ΓòÉΓòÉΓòÉ 9.9.35. _DOY ΓòÉΓòÉΓòÉ
  12239.  
  12240. _DOY is the day of the year (1 to 366). 
  12241.  
  12242.  
  12243. ΓòÉΓòÉΓòÉ 9.9.36. _FG ΓòÉΓòÉΓòÉ
  12244.  
  12245. _FG is a string containing the first three letters of the screen foreground 
  12246. color at the current cursor position (for example, "Whi"). 
  12247.  
  12248.  
  12249. ΓòÉΓòÉΓòÉ 9.9.37. _HLOGFILE ΓòÉΓòÉΓòÉ
  12250.  
  12251. _HLOGFILE  returns the name of the current history log file (or an empty string 
  12252. if LOG /H is OFF).  See LOG for information on logging. 
  12253.  
  12254.  
  12255. ΓòÉΓòÉΓòÉ 9.9.38. _HOUR ΓòÉΓòÉΓòÉ
  12256.  
  12257. _HOUR is the current hour (0 - 23). 
  12258.  
  12259.  
  12260. ΓòÉΓòÉΓòÉ 9.9.39. _KBHIT ΓòÉΓòÉΓòÉ
  12261.  
  12262. _KBHIT returns 1 if one or more keystrokes are waiting in the keyboard buffer, 
  12263. or 0 if the keyboard buffer is empty. 
  12264.  
  12265.  
  12266. ΓòÉΓòÉΓòÉ 9.9.40. _LASTDISK ΓòÉΓòÉΓòÉ
  12267.  
  12268. _LASTDISK is the last valid drive letter, without a colon. 
  12269.  
  12270.  
  12271. ΓòÉΓòÉΓòÉ 9.9.41. _LOGFILE ΓòÉΓòÉΓòÉ
  12272.  
  12273. _LOGFILE  returns the name of the current log file (or an empty string if LOG 
  12274. is OFF).  See LOG for information on logging. 
  12275.  
  12276.  
  12277. ΓòÉΓòÉΓòÉ 9.9.42. _MINUTE ΓòÉΓòÉΓòÉ
  12278.  
  12279. _MINUTE is the current minute (0 - 59). 
  12280.  
  12281.  
  12282. ΓòÉΓòÉΓòÉ 9.9.43. _MONITOR ΓòÉΓòÉΓòÉ
  12283.  
  12284. _MONITOR is the monitor type ("mono" or "color"). 
  12285.  
  12286.  
  12287. ΓòÉΓòÉΓòÉ 9.9.44. _MONTH ΓòÉΓòÉΓòÉ
  12288.  
  12289. _MONTH is the current month of the year (1 to 12). 
  12290.  
  12291.  
  12292. ΓòÉΓòÉΓòÉ 9.9.45. _MOUSE ΓòÉΓòÉΓòÉ
  12293.  
  12294. _MOUSE always returns "1" in 4OS2. 
  12295.  
  12296.  
  12297. ΓòÉΓòÉΓòÉ 9.9.46. _NDP ΓòÉΓòÉΓòÉ
  12298.  
  12299. _NDP is the coprocessor type: 
  12300.  
  12301.         0       no coprocessor is installed 
  12302.         87      8087 
  12303.         287     80287 
  12304.         387     80387, 80486DX, 80487, Pentium, or Pentium Pro 
  12305.  
  12306.  
  12307. ΓòÉΓòÉΓòÉ 9.9.47. _PID ΓòÉΓòÉΓòÉ
  12308.  
  12309. _PID is the current process ID number. 
  12310.  
  12311.  
  12312. ΓòÉΓòÉΓòÉ 9.9.48. _PIPE ΓòÉΓòÉΓòÉ
  12313.  
  12314. _PIPE returns "1" if the current process is running inside a pipe or "0" 
  12315. otherwise. 
  12316.  
  12317.  
  12318. ΓòÉΓòÉΓòÉ 9.9.49. _PPID ΓòÉΓòÉΓòÉ
  12319.  
  12320. _PPID is the process ID number of the parent process. 
  12321.  
  12322.  
  12323. ΓòÉΓòÉΓòÉ 9.9.50. _PTYPE ΓòÉΓòÉΓòÉ
  12324.  
  12325. _PTYPE is the current OS/2 process type: 
  12326.  
  12327.         AVIO    Character mode, windowed 
  12328.         DT      Detached (no screen in use) 
  12329.         FS      Character mode, full-screen 
  12330.         PM      Presentation Manager 
  12331.  
  12332.  
  12333. ΓòÉΓòÉΓòÉ 9.9.51. _ROW ΓòÉΓòÉΓòÉ
  12334.  
  12335. _ROW is the current cursor row (for example, "0" for the top of the screen). 
  12336.  
  12337.  
  12338. ΓòÉΓòÉΓòÉ 9.9.52. _ROWS ΓòÉΓòÉΓòÉ
  12339.  
  12340. _ROWS is the current number of screen rows (for example, "25"). 
  12341.  
  12342.  
  12343. ΓòÉΓòÉΓòÉ 9.9.53. _SECOND ΓòÉΓòÉΓòÉ
  12344.  
  12345. _SECOND is the current second (0 - 59). 
  12346.  
  12347.  
  12348. ΓòÉΓòÉΓòÉ 9.9.54. _SHELL ΓòÉΓòÉΓòÉ
  12349.  
  12350. _SHELL is the current shell nesting level.  The primary shell is level "0", and 
  12351. each subsequent secondary shell increments the level by 1. 
  12352.  
  12353.  
  12354. ΓòÉΓòÉΓòÉ 9.9.55. _SID ΓòÉΓòÉΓòÉ
  12355.  
  12356. _SID is the session ID number. 
  12357.  
  12358.  
  12359. ΓòÉΓòÉΓòÉ 9.9.56. _SYSERR ΓòÉΓòÉΓòÉ
  12360.  
  12361. _SYSERR is the error code of the last operating system error. You will need a 
  12362. technical or programmer's manual to understand these error values. 
  12363.  
  12364.  
  12365. ΓòÉΓòÉΓòÉ 9.9.57. _TIME ΓòÉΓòÉΓòÉ
  12366.  
  12367. _TIME contains the current system time in the format hh:mm:ss.  The separator 
  12368. character may vary depending upon your country information. 
  12369.  
  12370.  
  12371. ΓòÉΓòÉΓòÉ 9.9.58. _TRANSIENT ΓòÉΓòÉΓòÉ
  12372.  
  12373. _TRANSIENT is "1" if the current shell is transient (started with a /C, see 
  12374. Starting 4OS2 for details), or "0" otherwise. 
  12375.  
  12376.  
  12377. ΓòÉΓòÉΓòÉ 9.9.59. _VIDEO ΓòÉΓòÉΓòÉ
  12378.  
  12379. _VIDEO is the video card type ("mono", "cga", "ega", "vga", "xga", "8514", or 
  12380. "IA/A" (for the PS/2 Image Adapter/A). 
  12381.  
  12382.  
  12383. ΓòÉΓòÉΓòÉ 9.9.60. _WINTITLE ΓòÉΓòÉΓòÉ
  12384.  
  12385. _WINTITLE returns the title of the current window. 
  12386.  
  12387.  
  12388. ΓòÉΓòÉΓòÉ 9.9.61. _XPIXELS ΓòÉΓòÉΓòÉ
  12389.  
  12390. _XPIXELS returns the physical screen horizontal size in pixels. 
  12391.  
  12392.  
  12393. ΓòÉΓòÉΓòÉ 9.9.62. _YEAR ΓòÉΓòÉΓòÉ
  12394.  
  12395. _YEAR is the current year (1980 to 2099). 
  12396.  
  12397.  
  12398. ΓòÉΓòÉΓòÉ 9.9.63. _YPIXELS ΓòÉΓòÉΓòÉ
  12399.  
  12400. _YPIXELS returns the physical screen vertical size in pixels. 
  12401.  
  12402.  
  12403. ΓòÉΓòÉΓòÉ 9.10. Variable Functions ΓòÉΓòÉΓòÉ
  12404.  
  12405. Variable functions are like internal variables, but they take one or more 
  12406. arguments (which can be environment variables or even other variable functions) 
  12407. and they return a value. 
  12408.  
  12409. The list below gives a one-line description of each function, and a 
  12410. cross-reference which selects a full screen help topic on that function.  A few 
  12411. of the variables are simple enough that the one-line description is sufficient, 
  12412. but in most cases you should check for any additional information in the 
  12413. cross-reference topic if you are not already familiar with a function.  You can 
  12414. also obtain help on any function with a HELP @functionname command at the 
  12415. prompt. 
  12416.  
  12417. See the discussion after the function list for some additional information, and 
  12418. examples of how the functions can be used.  For additional examples, see the 
  12419. EXAMPLES.BTM file which came with 4OS2. 
  12420.  
  12421. The variable functions are: 
  12422.  
  12423. System status 
  12424.  
  12425.         @DOSMEM[b|k|m]                      Size of largest free memory block 
  12426.         @READSCR[row,col,len]               Read characters from the screen 
  12427.  
  12428.  Drives and devices 
  12429.  
  12430.         @CDROM[d:]                          CD-ROM drive detection (0 or 1) 
  12431.         @DEVICE[name]                       Character device detection 
  12432.         @DISKFREE[d:,b|k|m]                 Free disk space 
  12433.         @DISKTOTAL[d:,b|k|m]                Total disk space 
  12434.         @DISKUSED[d:,b|k|m]                 Used disk space 
  12435.         @FSTYPE[d:]                         File system type (FAT, HPFS, CDFS, 
  12436.                                             etc.) 
  12437.         @LABEL[d:]                          Volume label 
  12438.         @READY[d:]                          Drive ready status (0 or 1) 
  12439.         @REMOTE[d:]                         Remote (network) drive detection (0 
  12440.                                             or 1) 
  12441.         @REMOVABLE[d:]                      Removable drive detection (0 or 1) 
  12442.  
  12443.  Files 
  12444.  
  12445.         @ATTRIB[filename [,-nrhsda]]        File attribute test (0 or 1) 
  12446.         @DESCRIPT[filename]                 File description 
  12447.         @EAREAD[filename,EAname]            Read extended attribute 
  12448.         @EAWRITE[filename,EAname,[value]]   Write extended attribute 
  12449.         @EXETYPE[filename]                  Executable file type (DOS, PM, WIN, 
  12450.                                             etc.) 
  12451.         @FILEAGE[filename[,acw]]            File age (date and time) 
  12452.         @FILECLOSE[n]                       Close a file 
  12453.         @FILEDATE[filename[,acw]]           File date 
  12454.         @FILEOPEN[filename,mode]            Open a file 
  12455.         @FILEREAD[n [,length]]              Read next line from a file 
  12456.         @FILES[filename [,-nrhsda]]         Count files matching a wildcard 
  12457.         @FILESEEK[n,offset,start]           Move a file pointer to an offset 
  12458.         @FILESEEKL[n,offset,start]          Move a file pointer to a line 
  12459.                                             number 
  12460.         @FILESIZE[filename,b|k|m]           Size of files matching a wildcard 
  12461.         @FILETIME[filename[,acw]]           File time 
  12462.         @FILEWRITE[n,text]                  Write next line to a file 
  12463.         @FILEWRITEB[n,length,string]        Write bytes from a string to a file 
  12464.         @FINDCLOSE[filename]                Close the search handle opened by 
  12465.                                             @FINDFIRST 
  12466.         @FINDFIRST[filename [,-nrhsda]]     Find first matching file 
  12467.         @FINDNEXT[filename [,-nrhsda]]      Find next matching file 
  12468.         @LINE[filename,n]                   Read a random line from a file 
  12469.         @LINES[filename]                    Count lines in a file 
  12470.         @SEARCH[filename]                   Path search 
  12471.         @UNIQUE[d:\path]                    Create file with unique name 
  12472.  
  12473.  File names 
  12474.  
  12475.         @EXPAND[filename [,-nrhsda]]        Names of all matching files and 
  12476.                                             directories 
  12477.         @EXT[filename]                      File extension 
  12478.         @FILENAME[filename]                 File name and extension 
  12479.         @FULL[filename]                     Full file name with path 
  12480.         @NAME[filename]                     File name without path or extension 
  12481.         @PATH[filename]                     File path without name 
  12482.  
  12483.  Strings and characters 
  12484.  
  12485.         @ASCII[c]                           Numeric ASCII value for a character 
  12486.         @CHAR[n]                            Character value for numeric ASCII 
  12487.         @FORMAT[[-][x][.y],string]          Formats (justifies) a string 
  12488.         @INDEX[string1,string2]             Position of one string in another 
  12489.         @INSERT[n,string1,string2]          Insert one string into another 
  12490.         @INSTR[start,length,string]         Extract a substring 
  12491.         @LEFT[n,string]                     Leftmost characters of a string 
  12492.         @LEN[string]                        Length of a string 
  12493.         @LOWER[string]                      Convert string to lower case 
  12494.         @REPEAT[c,n]                        Repeat a character 
  12495.         @REPLACE[string1,string2,text]      Replace all occurrences of one 
  12496.                                             string with another 
  12497.         @RIGHT[n,string]                    Rightmost characters of a string 
  12498.         @STRIP[chars,string]                Remove characters from string 
  12499.         @SUBSTR[string,start,length]        Extract a substring 
  12500.         @TRIM[string]                       Remove blanks from a string 
  12501.         @UPPER[string]                      Convert string to upper case 
  12502.         @WILD[string1,string2]              Wildcard comparison 
  12503.         @WORD[["sep",] n,string]            Extract a word from a string 
  12504.         @WORDS[["sep",] string]             Counts number of words in a string 
  12505.  
  12506.  Numbers and arithmetic 
  12507.  
  12508.         @COMMA[n]                           Inserts commas in a number 
  12509.         @CONVERT[input,output,value]        Base conversion 
  12510.         @DEC[%var]                          Decremented value of a variable 
  12511.         @EVAL[expression]                   Arithmetic calculations 
  12512.         @INC[%var]                          Incremented value of a variable 
  12513.         @INT[n]                             Integer part of a number 
  12514.         @NUMERIC[string]                    Test if a string is numeric 
  12515.         @RANDOM[min,max]                    Generate a random integer 
  12516.  
  12517.  Dates and times 
  12518.  
  12519.         @DATE[mm-dd-yy]                     Convert date to number of days 
  12520.         @DAY[mm-dd-yy]                      Day of the month 
  12521.         @DOW[mm-dd-yy]                      Day of the week 
  12522.         @DOWI[mm-dd-yy]                     Numeric day of the week 
  12523.         @DOY[mm-dd-yy]                      Numeric day of the year 
  12524.         @MAKEAGE[n]                         Convert date/time to file date/time 
  12525.         @MAKEDATE[n]                        Convert number of days to date 
  12526.         @MAKETIME[n]                        Convert number of seconds to time 
  12527.         @MONTH[mm-dd-yy]                    Month of the year 
  12528.         @TIME[hh:mm:ss]                     Convert time to number of seconds 
  12529.         @TIMER[n]                           Elapsed time of specified timer 
  12530.         @YEAR[mm-dd-yy]                     Year number (2 digits) 
  12531.  
  12532.  Utility 
  12533.  
  12534.         @ALIAS[name]                        Value of an alias 
  12535.         @CLIP[n]                            Line from the clipboard 
  12536.         @IF[condition,true,false]           Evaluates a test condition 
  12537.         @EXEC[command]                      Execute a command 
  12538.         @EXECSTR[command]                   Execute, return string 
  12539.         @REXX[expr]                         Execute a REXX expression 
  12540.         @SELECT[file,t,l,b,r,title]         Menu selection 
  12541.  
  12542.  Additional Notes 
  12543.  
  12544.  Like all environment variables, these variable functions must be preceded by a 
  12545.  percent sign (%@EVAL, %@LEN, etc.).  All variable functions must have square 
  12546.  brackets enclosing their argument(s).  The argument(s) to a variable function 
  12547.  cannot exceed 255 characters in length for all arguments taken as a group. 
  12548.  
  12549.  Specific Functions and Arguments 
  12550.  
  12551.  Some variable functions, like @DISKFREE, are shown with "b|k|m" as one of 
  12552.  their arguments.  Those functions return a number of bytes, kilobytes, or 
  12553.  megabytes based on the "b|k|m" argument: 
  12554.  
  12555.         b   return the number of bytes 
  12556.         K   return the number of kilobytes (bytes / 1,024) 
  12557.         k   return the number of thousands of bytes (bytes / 1,000) 
  12558.         M   return the number of megabytes (bytes / 1,048,576) 
  12559.         m   return the number of millions of bytes (bytes / 1,000,000) 
  12560.  
  12561.  You can include commas (or the "thousands separator" character for your 
  12562.  system) in the results from a "b|k|m" function by appending a "c" to the 
  12563.  argument.  For example, to add commas to a "b" or number of bytes result, 
  12564.  enter "bc" as the argument.  To set the thousands separator see the 
  12565.  ThousandsChar directive. 
  12566.  
  12567.  Functions which accept a date as an argument use the date format and 
  12568.  separators mandated by your country code (for example dd.mm.yy in Germany, or 
  12569.  yy-mm-dd in Japan).  The year can be entered as a 4-digit or 2-digit value. 
  12570.  Two-digit years between 80 and 99 are interpreted as 1980 - 1999; values 
  12571.  between 00 and 79 are interpreted as 2000 - 2079. 
  12572.  
  12573.  Several functions return filenames or parts of filenames.  On an HPFS drive 
  12574.  the strings returned by these functions may contain whitespace or other 
  12575.  special characters.  To avoid problems which could be caused by these 
  12576.  characters, quote the returned name before you pass it to other commands, for 
  12577.  example (either of these methods would work): 
  12578.  
  12579.           set fname="%@findfirst[pro*.*]"
  12580.           echo First PRO file contains:
  12581.           type %fname
  12582.           .....
  12583.  
  12584.           set fname=%@findfirst[pro*.*]
  12585.           echo First PRO file contains:
  12586.           type "%fname"
  12587.           .....
  12588.  
  12589.  If you don't use the quotes in the SET or TYPE command in this example, TYPE 
  12590.  will not interpret any whitespace or special characters in the name properly. 
  12591.  
  12592.  In variable functions which take a drive letter as an argument, like @DISKFREE 
  12593.  or @READY, the drive letter must be followed by a colon.  The function will 
  12594.  not work properly if you use the drive letter without the colon. 
  12595.  
  12596.  The @FILEREAD, @FILEWRITE, @FILEWRITEB, @FILESEEK, @FILESEEKL, and @FILECLOSE 
  12597.  functions allow you to access files based on their file handle.  These 
  12598.  functions should only be used with file handles returned by @FILEOPEN!  If you 
  12599.  use them with any other file handle you may damage other files opened by 4OS2 
  12600.  (or, in a secondary shell, the program which started 4OS2), or hang your 
  12601.  system. 
  12602.  
  12603.  Many functions return values based on information provided by your operating 
  12604.  system.  Such functions will only return correct information if the operating 
  12605.  system provides it.  For example, @READY will not return accurate results if 
  12606.  your operating system does not provide correct disk drive status information 
  12607.  to the command processor. 
  12608.  
  12609.  Examples 
  12610.  
  12611.  You can use variable functions in a wide variety of ways depending on your 
  12612.  needs.  We've included a few examples below to give you an idea of what's 
  12613.  possible.  For additional examples, see the EXAMPLES.BTM file which came with 
  12614.  4OS2. 
  12615.  
  12616.  To set the prompt to show the amount of free memory (see PROMPT for details on 
  12617.  including variable functions in your prompt): 
  12618.  
  12619.           [c:\] prompt (%%@dosmem[K]K) $p$g
  12620.  
  12621.  Set up a simple command-line calculator.  The calculator is used with a 
  12622.  command like CALC 3 * (4 + 5): 
  12623.  
  12624.           [c:\] alias calc `echo The answer is:  %@eval[%&]`
  12625.  
  12626.  The following batch file uses variable functions to implement "once a day" 
  12627.  execution of a group of commands.  It works by constructing a 6-digit number 
  12628.  "yymmdd" from today's date, and comparing that to a number of the same type 
  12629.  stored in the file C:\ONCEADAY.DAT. If today's date is numerically larger than 
  12630.  the saved date, and the time is after 6:00 AM, then the "once a day" commands 
  12631.  are run, and today's date is saved in the file as the new date for comparison. 
  12632.  Otherwise, no action is taken.  You can make this file simpler using the 
  12633.  %@DATE and %@TIME functions instead of using %@INSTR to extract substrings of 
  12634.  the %_DATE and %_TIME variables; we used the approach shown to demonstrate the 
  12635.  use of %@INSTR. 
  12636.  
  12637.           rem  Temporary variables used to shorten example lines:
  12638.           rem    DD is _date, DY is yymmdd date, TM is _time
  12639.           set dd=%_date
  12640.           set dy=%@instr[6,2,%dd]%@instr[0,2,%dd]%@instr[3,2,%dd]
  12641.           set lastdate=0
  12642.           iff exist c:\onceaday.dat then
  12643.              set lastdate=%@line[onceaday.dat,0]
  12644.           endiff
  12645.           iff %dy gt %lastdate then
  12646.              set tm=%_time
  12647.              iff "%@instr[0,2,%tm]%@instr[3,2,%tm]" gt "0600" then
  12648.                 rem Commands to be executed once a day go here
  12649.                 echo %dy > c:\onceaday.dat
  12650.              endiff
  12651.           endiff
  12652.  
  12653.  
  12654. ΓòÉΓòÉΓòÉ 9.10.1. @ALIAS ΓòÉΓòÉΓòÉ
  12655.  
  12656. @ALIAS[name]:  Returns the contents of the specified alias as a string, or a 
  12657. null string if the alias doesn't exist.  When manipulating strings returned by 
  12658. @ALIAS you may need to disable certain special characters with the SETDOS /X 
  12659. command. Otherwise, command separators, redirection characters, and other 
  12660. similar "punctuation" in the alias may be interpreted as part of the current 
  12661. command, rather than part of a simple text string. 
  12662.  
  12663.  
  12664. ΓòÉΓòÉΓòÉ 9.10.2. @ASCII ΓòÉΓòÉΓòÉ
  12665.  
  12666. @ASCII[c]:  Returns the numeric value of the specified ASCII character as a 
  12667. string.  For example %@ASCII[A] returns 65.  You can put an escape character 
  12668. [^] before the actual character to process.  This allows quotes and other 
  12669. special characters as the argument (e.g., %@ASCII[^`]). 
  12670.  
  12671.  
  12672. ΓòÉΓòÉΓòÉ 9.10.3. @ATTRIB ΓòÉΓòÉΓòÉ
  12673.  
  12674. @ATTRIB[filename, [-nrhsda[,p]]]:  Returns a "1" if the specified file has the 
  12675. matching attribute(s); otherwise returns a "0".  The attributes are: 
  12676.  
  12677.         N   Normal (no attributes set) 
  12678.         R   Read-only 
  12679.         H   Hidden 
  12680.         S   System 
  12681.         D   Directory 
  12682.         A   Archive 
  12683.  
  12684.  The attributes (other than N) can be combined (for example 
  12685.  %@ATTRIB[MYFILE,HS]).  You can prefix an attribute with "-" to mean 
  12686.  "everything except files with this attribute." 
  12687.  
  12688.  Without the optional p as a third argument, ATTRIB will only return a 1 if all 
  12689.  of the attributes match.  With the p, ATTRIB will return a 1 if there is a 
  12690.  partial match.  For example, if MYFILE.DAT has R, H, and A attributes set: 
  12691.  
  12692.           %@attrib[myfile.dat,r]   returns 0 because there is not an exact match
  12693.  
  12694.           %@attrib[myfile.dat,r,p] returns 1 because there is a partial match
  12695.  
  12696.  If you do not specify any attributes, ATTRIB will return the attributes of the 
  12697.  specified file in the format RHSAD, rather than a "0" or "1".  Attributes 
  12698.  which are not set will be replaced with an underscore.  For example, if 
  12699.  SECURE.DAT has the read-only, hidden, and archive attributes set, 
  12700.  %@ATTRIB[SECURE.DAT ] would return RH_A_. 
  12701.  
  12702.  
  12703. ΓòÉΓòÉΓòÉ 9.10.4. @CDROM ΓòÉΓòÉΓòÉ
  12704.  
  12705. @CDROM[d:]:  Returns "1" if the drive is a CD-ROM or "0" otherwise. 
  12706.  
  12707.  
  12708. ΓòÉΓòÉΓòÉ 9.10.5. @CHAR ΓòÉΓòÉΓòÉ
  12709.  
  12710. @CHAR[n]:  Returns the character corresponding to an ASCII numeric value.  For 
  12711. example %@CHAR[65] returns A. 
  12712.  
  12713.  
  12714. ΓòÉΓòÉΓòÉ 9.10.6. @CLIP ΓòÉΓòÉΓòÉ
  12715.  
  12716. @CLIP[n]:  Returns line n from the clipboard.  The first line is numbered 0. 
  12717. "**EOC**" is returned for all line numbers beyond the end of the clipboard. 
  12718.  
  12719.  
  12720. ΓòÉΓòÉΓòÉ 9.10.7. @COMMA ΓòÉΓòÉΓòÉ
  12721.  
  12722. @COMMA[n]:  Inserts commas, or the "thousands separator" character for your 
  12723. system, into a numeric string.  To set the thousands separator see the 
  12724. ThousandsChar directive. 
  12725.  
  12726.  
  12727. ΓòÉΓòÉΓòÉ 9.10.8. @CONVERT ΓòÉΓòÉΓòÉ
  12728.  
  12729. @CONVERT[input, output, value]:  Converts a numeric string (value) from one 
  12730. number base (input) to another (output).  Valid bases range from 2 to 36.  The 
  12731. value must be a positive number between 0 and 2**32-1 (2,147,483,647).  No 
  12732. error is returned if value is outside that range.  For example, to convert 
  12733. "1010101" from binary to decimal, use this syntax: 
  12734.  
  12735.         %@convert[2,10,1010101]
  12736.  
  12737.  
  12738. ΓòÉΓòÉΓòÉ 9.10.9. @DATE ΓòÉΓòÉΓòÉ
  12739.  
  12740. @DATE[mm-dd-yy]:  Returns the number of days since January 1, 1980 for the 
  12741. specified date.  DATE uses the date format and separators mandated by your 
  12742. country code (for example dd.mm.yy in Germany, or yy-mm-dd in Japan).  The year 
  12743. can be entered as a 4-digit or 2-digit value.  Two-digit years between 80 and 
  12744. 99 are interpreted as 1980 - 1999; values between 00 and 79 are interpreted as 
  12745. 2000 - 2079. 
  12746.  
  12747.  
  12748. ΓòÉΓòÉΓòÉ 9.10.10. @DAY ΓòÉΓòÉΓòÉ
  12749.  
  12750. @DAY[mm-dd-yy]:  Returns the numeric day of the month for the specified date. 
  12751. DATE uses the date format and separators mandated by your country code (for 
  12752. example dd.mm.yy in Germany, or yy-mm-dd in Japan).  The year can be entered as 
  12753. a 4-digit or 2-digit value.  Two-digit years between 80 and 99 are interpreted 
  12754. as 1980 - 1999; values between 00 and 79 are interpreted as 2000 - 2079. 
  12755.  
  12756.  
  12757. ΓòÉΓòÉΓòÉ 9.10.11. @DEC ΓòÉΓòÉΓòÉ
  12758.  
  12759. @DEC[%var]:  Returns the same value as @EVAL[%var - 1].  That is, it retrieves 
  12760. and decrements the value of a variable.  The variable itself is not changed; to 
  12761. do so, use a command like this: 
  12762.  
  12763.         set var=%@dec[%var]
  12764.  
  12765.  
  12766. ΓòÉΓòÉΓòÉ 9.10.12. @DESCRIPT ΓòÉΓòÉΓòÉ
  12767.  
  12768. @DESCRIPT[filename]:  Returns the file description for the specified filename 
  12769. (see DESCRIBE). 
  12770.  
  12771.  
  12772. ΓòÉΓòÉΓòÉ 9.10.13. @DEVICE ΓòÉΓòÉΓòÉ
  12773.  
  12774. @DEVICE[name]:  Returns "1" if the specified name is a character device (such 
  12775. as a printer or serial port), or "0" if not. 
  12776.  
  12777.  
  12778. ΓòÉΓòÉΓòÉ 9.10.14. @DISKFREE ΓòÉΓòÉΓòÉ
  12779.  
  12780. @DISKFREE[d:,b|k|m]: Returns the amount of free disk space on the specified 
  12781. drive. 
  12782.  
  12783.  
  12784. ΓòÉΓòÉΓòÉ 9.10.15. @DISKTOTAL ΓòÉΓòÉΓòÉ
  12785.  
  12786. @DISKTOTAL[d:,b|k|m]:  Returns the total disk space on the specified drive. 
  12787.  
  12788.  
  12789. ΓòÉΓòÉΓòÉ 9.10.16. @DISKUSED ΓòÉΓòÉΓòÉ
  12790.  
  12791. @DISKUSED[d:,b|k|m]:  Returns the amount of disk space in use by files and 
  12792. directories on the specified drive. 
  12793.  
  12794.  
  12795. ΓòÉΓòÉΓòÉ 9.10.17. @DOSMEM ΓòÉΓòÉΓòÉ
  12796.  
  12797. @DOSMEM[b|k|m]:  Returns the size of the largest free memory block (either in 
  12798. physical or virtual memory). 
  12799.  
  12800.  
  12801. ΓòÉΓòÉΓòÉ 9.10.18. @DOW ΓòÉΓòÉΓòÉ
  12802.  
  12803. @DOW[mm-dd-yy]:  Returns the first three characters of the day of the week for 
  12804. the specified date ("Mon", "Tue", "Wed", etc.). DATE uses the date format and 
  12805. separators mandated by your country code (for example dd.mm.yy in Germany, or 
  12806. yy-mm-dd in Japan).  The year can be entered as a 4-digit or 2-digit value. 
  12807. Two-digit years between 80 and 99 are interpreted as 1980 - 1999; values 
  12808. between 00 and 79 are interpreted as 2000 - 2079. 
  12809.  
  12810.  
  12811. ΓòÉΓòÉΓòÉ 9.10.19. @DOWI ΓòÉΓòÉΓòÉ
  12812.  
  12813. @DOWI[mm-dd-yy]:  Returns the day of the week for the specified date as an 
  12814. integer (1 = Sunday, 2 = Monday, etc.).  DATE uses the date format and 
  12815. separators mandated by your country code (for example dd.mm.yy in Germany, or 
  12816. yy-mm-dd in Japan).  The year can be entered as a 4-digit or 2-digit value. 
  12817. Two-digit years between 80 and 99 are interpreted as 1980 - 1999; values 
  12818. between 00 and 79 are interpreted as 2000 - 2079. 
  12819.  
  12820.  
  12821. ΓòÉΓòÉΓòÉ 9.10.20. @DOY ΓòÉΓòÉΓòÉ
  12822.  
  12823. @DOY[mm-dd-yy]:  Returns the day of year for the specified date (1-366).  DATE 
  12824. uses the date format and separators mandated by your country code (for example 
  12825. dd.mm.yy in Germany, or yy-mm-dd in Japan).  The year can be entered as a 
  12826. 4-digit or 2-digit value.  Two-digit years between 80 and 99 are interpreted as 
  12827. 1980 - 1999; values between 00 and 79 are interpreted as 2000 - 2079. 
  12828.  
  12829.  
  12830. ΓòÉΓòÉΓòÉ 9.10.21. @EAREAD ΓòÉΓòÉΓòÉ
  12831.  
  12832. @EAREAD[filename, EAname]:  Returns the specified extended attribute ( EAname) 
  12833. for a file or an empty string if the extended attribute does not exist.  This 
  12834. function can only read EAs stored as text; it cannot read binary EAs. 
  12835. Wildcards cannot be used in the file name.  For example, to read the .SUBJECT 
  12836. extended attribute for README.TXT: 
  12837.  
  12838.         set subject=%@earead[readme.txt,.subject]
  12839.  
  12840.  
  12841. ΓòÉΓòÉΓòÉ 9.10.22. @EAWRITE ΓòÉΓòÉΓòÉ
  12842.  
  12843. @EAWRITE[filename, EAname, [value]]:  Creates or updates the extended attribute 
  12844. named EAname for the specified file.  If the value is not included, the 
  12845. extended attribute is deleted.  Returns "0" for success or "-1" for failure. 
  12846. This function can only write EAs stored as text; it cannot write binary EAs. 
  12847.  
  12848. Wildcards cannot be used in the file name and the filename must be in quotes if 
  12849. it contains whitespace or special characters. 
  12850.  
  12851. For example, to set the .SUBJECT extended attribute for README.TXT (enter this 
  12852. on one line): 
  12853.  
  12854.         if %@eawrite[readme.txt,.subject,Installation notes for
  12855.         latest version] != 0 echo EAWRITE failed!
  12856.  
  12857.  
  12858. ΓòÉΓòÉΓòÉ 9.10.23. @EVAL ΓòÉΓòÉΓòÉ
  12859.  
  12860. @EVAL[expression]:  Evaluates an arithmetic expression.  @EVAL supports 
  12861. addition (+), subtraction (-), multiplication (*), division (/), integer 
  12862. division (\, returns the integer part of the quotient), modulo (%%), and 
  12863. integer exponentiation (**).  The expression can contain environment variables 
  12864. and other variable functions.  @EVAL also supports parentheses, commas, and 
  12865. decimals.  Parentheses can be nested.  @EVAL will strip leading and trailing 
  12866. zeros from the result. When evaluating expressions, **, *, /, and %% take 
  12867. precedence over + and -.  For example, 3 + 4 * 2 will be interpreted as 3 + 8, 
  12868. not as 7 * 2.  To change this order of evaluation, use parentheses to specify 
  12869. the order you want. Also see @DEC and @INC 
  12870.  
  12871. To ensure that your @EVAL expressions are interpreted correctly, spaces should 
  12872. be placed on both sides of each operator, for example: 
  12873.  
  12874.         %@eval[(20 %% 3) + 4]
  12875.  
  12876. The maximum precision is 16 digits to the left of the decimal point and 8 
  12877. digits to the right of the decimal point.  You can alter the default precision 
  12878. to the right of the decimal point on the Options 2 page of the OPTION dialogs 
  12879. or with the EvalMax and EvalMin directives in 4OS2.INI, and with the SETDOS /F 
  12880. command.  You can alter the decimal character from the Options 1 page of the 
  12881. OPTION dialogs, with the DecimalChar directive, or the SETDOS /G command. 
  12882.  
  12883. You can alter the precision for a single evaluation with the construct 
  12884. @EVAL[expression=x.y].  The x value specifies the minimum decimal precision 
  12885. (i.e., the minimum number of decimal places displayed); the y value sets the 
  12886. maximum decimal precision.  You can use =x,y instead of =x.y if the comma is 
  12887. your decimal separator.  If x is greater than y, it is ignored.  You can 
  12888. specify either or both arguments, for example: 
  12889.  
  12890.         @eval[3 / 7=2]          returns 0.42857143
  12891.         @eval[3 / 7=.4]         returns 0.4286
  12892.         @eval[3 / 6=2.4]        returns 0.50
  12893.  
  12894.  
  12895. ΓòÉΓòÉΓòÉ 9.10.24. @EXEC ΓòÉΓòÉΓòÉ
  12896.  
  12897. @EXEC[[@]command]:  Execute the command and return the numeric exit code.  The 
  12898. command can be an alias, internal command, external command, or .BTM file, 
  12899. .BAT, or .CMD file. 
  12900.  
  12901. @EXEC is primarily intended for running a program from within the PROMPT.  It 
  12902. is a "back door" entry into command processing and should be used with extreme 
  12903. caution.  Incorrect or recursive use of @EXEC may hang your system. 
  12904.  
  12905. By default, @EXEC returns the result code from the command; if you preface the 
  12906. command name with an '@' then @EXEC will return an empty string. 
  12907.  
  12908.  
  12909. ΓòÉΓòÉΓòÉ 9.10.25. @EXECSTR ΓòÉΓòÉΓòÉ
  12910.  
  12911. @EXECSTR[command]:  Runs the specified command and returns the first line 
  12912. written to STDOUT by that command. 
  12913.  
  12914. @EXEC is primarily intended for running a program from within the PROMPT.  It 
  12915. is a "back door" entry into command processing and should be used with extreme 
  12916. caution.  Incorrect or recursive use of @EXEC may hang your system. 
  12917.  
  12918. @EXECSTR is useful for retrieving a result from an external utility -- for 
  12919. example, if you have an external utility called NETTIME.EXE which retrieves the 
  12920. time of day from your network server and writes it to standard output, you 
  12921. could save it in an environment variable using a command like this: 
  12922.  
  12923.         [c:\] set server_time=%@execstr[d:\path\nettime.exe]
  12924.  
  12925. If the same utility returned a result properly formatted for the TIME command 
  12926. you could also use it to set the time on your system: 
  12927.  
  12928.         [c:\] time %@execstr[d:\path\nettime.exe]
  12929.  
  12930.  
  12931. ΓòÉΓòÉΓòÉ 9.10.26. @EXETYPE ΓòÉΓòÉΓòÉ
  12932.  
  12933. @EXETYPE[filename]:  Returns the application type as a string: 
  12934.  
  12935.         DOS           DOS .COM, .EXE, or .BAT 
  12936.         AVIO          OS/2 Character mode, windowed 
  12937.         FS            OS/2 Character mode, full-screen 
  12938.         PM            OS/2 Presentation Manager 
  12939.         WIN           Windows 3 
  12940.         UNKNOWN       Any other file 
  12941.  
  12942.  
  12943. ΓòÉΓòÉΓòÉ 9.10.27. @EXPAND ΓòÉΓòÉΓòÉ
  12944.  
  12945. @EXPAND[filename [,-nrhsda]]:  Returns, on a single line, the names of all 
  12946. files and directories that match the filename specification, which may contain 
  12947. wildcards and include lists.  Returns an empty string if no files match.  If 
  12948. the file list is longer than the allowed command line length, it will be 
  12949. truncated without an error message. 
  12950.  
  12951. The second argument, if included, defines the attributes of the files that will 
  12952. be included in the search.  The attributes are: 
  12953.  
  12954.         N   Normal (no attributes set) 
  12955.         R   Read-only 
  12956.         H   Hidden 
  12957.         S   System 
  12958.         D   Directory 
  12959.         A   Archive 
  12960.  
  12961.  The attributes (other than N) can be combined (for example 
  12962.  %@EXPAND[MYFILE,HS]).  You can prefix an attribute with "-" to mean 
  12963.  "everything except files with this attribute."  If the attribute argument is 
  12964.  not used, hidden files, system files, and directories will be excluded from 
  12965.  the returned list; all other files which match the filename will be included. 
  12966.  
  12967.  
  12968. ΓòÉΓòÉΓòÉ 9.10.28. @EXT ΓòÉΓòÉΓòÉ
  12969.  
  12970. @EXT[filename]:  Returns the extension from a filename, without a leading 
  12971. period.  On HPFS drives the extension can be up to 64 characters long.  On 
  12972. traditional FAT drives it can be up to 3 characters long. 
  12973.  
  12974.  
  12975. ΓòÉΓòÉΓòÉ 9.10.29. @FILEAGE ΓòÉΓòÉΓòÉ
  12976.  
  12977. @FILEAGE[filename[,acw]]:  Returns the date and time of the file as a single 
  12978. numeric value.  The number can be used to compare the relative ages of two or 
  12979. more files, but can not be used for date and time calculations as it is not 
  12980. returned in identifiable units.  The optional second argument selects which 
  12981. date field is returned for files on an HPFS drive: a means the last access 
  12982. date, c means the creation date, and w means the last modification (write) 
  12983. date, which is the default.  Also see @MAKEAGE. 
  12984.  
  12985.  
  12986. ΓòÉΓòÉΓòÉ 9.10.30. @FILECLOSE ΓòÉΓòÉΓòÉ
  12987.  
  12988. @FILECLOSE[n]:  Closes the file whose handle is n.  You cannot close handles 0, 
  12989. 1 or 2.  Returns "0" if the file closed OK or "-1" if an error occurred.  Be 
  12990. sure to read the cautionary note about file functions under Variable Functions. 
  12991.  
  12992.  
  12993. ΓòÉΓòÉΓòÉ 9.10.31. @FILEDATE ΓòÉΓòÉΓòÉ
  12994.  
  12995. @FILEDATE[filename[,acw]]:  Returns the date a file was last modified, in the 
  12996. default country format (mm-dd-yy for the US).  The optional second argument 
  12997. selects which date field is returned for files on an HPFS drive: a means the 
  12998. last access date, c means the creation date, and w means the last modification 
  12999. (write) date, which is the default. 
  13000.  
  13001.  
  13002. ΓòÉΓòÉΓòÉ 9.10.32. @FILENAME ΓòÉΓòÉΓòÉ
  13003.  
  13004. @FILENAME[filename]:  Returns the name and extension of a file, without a path. 
  13005.  
  13006.  
  13007. ΓòÉΓòÉΓòÉ 9.10.33. @FILEOPEN ΓòÉΓòÉΓòÉ
  13008.  
  13009. @FILEOPEN[filename, read | write | append, [b | t]]:  Opens the file in the 
  13010. specified mode and returns the file handle as an integer.  Returns "-1" if the 
  13011. file cannot be opened. 
  13012.  
  13013. The optional third parameter controls whether the file is opened in binary mode 
  13014. ("b") or text mode ("t").  Text mode (the default) should be used to read text 
  13015. using @FILEREAD without a "length" parameter, and to write text using 
  13016. @FILEWRITE.  Binary mode should be used to read binary data with @FILEREAD with 
  13017. a "length" parameter, and to write binary data with @FILEWRITEB. 
  13018.  
  13019. Be sure to read the cautionary note about file functions under Variable 
  13020. Functions. 
  13021.  
  13022. @FILEOPEN can also open named pipes.  The pipe name must begin with \pipe\. 
  13023. @FILEOPEN first tries to open an existing pipe; if that fails it tries to 
  13024. create a new pipe.  Pipes are opened in blocking mode, duplex access, byte-read 
  13025. mode, and inheritable.  For more information on named pipes see your OS/2 
  13026. documentation. 
  13027.  
  13028.  
  13029. ΓòÉΓòÉΓòÉ 9.10.34. @FILEREAD ΓòÉΓòÉΓòÉ
  13030.  
  13031. @FILEREAD[n [,length]]: Reads data from the file whose handle is n.  Returns 
  13032. "**EOF**" if you attempt to read past the end of the file.  If length is not 
  13033. specified @FILEREAD will read until the next CR or LF (end of line) character. 
  13034. If length is specified, @FILEREAD will read length bytes regardless of any end 
  13035. of line characters. 
  13036.  
  13037. If you plan to read text a line at a time, without using length, you should 
  13038. open the file in text mode.  If you plan to read binary data using length, you 
  13039. should open the file in binary mode.  See @FILEOPEN for details on opening the 
  13040. file in the proper mode. 
  13041.  
  13042. Be sure to read the cautionary note about file functions under Variable 
  13043. Functions. 
  13044.  
  13045.  
  13046. ΓòÉΓòÉΓòÉ 9.10.35. @FILES ΓòÉΓòÉΓòÉ
  13047.  
  13048. @FILES[filename [,-nrhsda]]:  Returns the number of files that match the 
  13049. filename, which may contain wildcards and include lists.  Returns "0" if no 
  13050. files match.  The filename must refer to a single directory; to check several 
  13051. directories, use @FILES once for each directory, and add the results together 
  13052. with @EVAL. 
  13053.  
  13054. The second argument is a list of file attributes.  If it is included, only 
  13055. those files matching all the specified attributes are counted.  The attributes 
  13056. are: 
  13057.  
  13058.         N   Normal (no attributes set) 
  13059.         R   Read-only 
  13060.         H   Hidden 
  13061.         S   System 
  13062.         D   Directory 
  13063.         A   Archive 
  13064.  
  13065.   The attributes (other than N) can be combined (for example 
  13066.  %@FILES[MYFILE,HS]).  You can prefix an attribute with - to mean "everything 
  13067.  except files with this attribute." 
  13068.  
  13069.  
  13070. ΓòÉΓòÉΓòÉ 9.10.36. @FILESEEK ΓòÉΓòÉΓòÉ
  13071.  
  13072. @FILESEEK[n,offset,start]:  Moves the file pointer offset bytes in the file 
  13073. whose handle is n.  Returns the new position of the pointer, in bytes from the 
  13074. start of the file.  Set start to 0 to seek relative to the beginning of the 
  13075. file, 1 to seek relative to the current file pointer, or 2 to seek relative to 
  13076. the end of the file.  The offset value may be negative (seek backward), 
  13077. positive (seek forward), or zero (return current position, but do not change 
  13078. it).  Be sure to read the cautionary note about file functions under Variable 
  13079. Functions. 
  13080.  
  13081.  
  13082. ΓòÉΓòÉΓòÉ 9.10.37. @FILESEEKL ΓòÉΓòÉΓòÉ
  13083.  
  13084. @FILESEEKL[n,line]:  Moves the file pointer to the specified line in the file 
  13085. whose handle is n.  The first line in the file is numbered 0.  Returns the new 
  13086. position of the pointer, in bytes from the start of the file.  Be sure to read 
  13087. the cautionary note about file functions under Variable Functions. 
  13088.  
  13089. @FILESEEKL must read each line of the file up to the target line in order to 
  13090. position the pointer, and will therefore cause significant delays if used in a 
  13091. long loop or on a large file. 
  13092.  
  13093.  
  13094. ΓòÉΓòÉΓòÉ 9.10.38. @FILESIZE ΓòÉΓòÉΓòÉ
  13095.  
  13096. @FILESIZE[filename,b|k|m[,a]]:  Returns the size of a file, or "-1" if the file 
  13097. does not exist.  If the filename includes wildcards or an include list, returns 
  13098. the combined size of all matching files. 
  13099.  
  13100. The optional third argument a (allocated), if used, instructs @FILESIZE to 
  13101. return the amount of space allocated for the file(s) on the disk, rather than 
  13102. the amount of data in the file.  Network drives and compressed drives may not 
  13103. always report allocated sizes accurately, depending on the way the network or 
  13104. disk compression software is implemented. 
  13105.  
  13106.  
  13107. ΓòÉΓòÉΓòÉ 9.10.39. @FILETIME ΓòÉΓòÉΓòÉ
  13108.  
  13109. @FILETIME[filename[,acw]]:  Returns the time a file was last modified, in hh:mm 
  13110. format.  The optional second argument selects which time field is returned for 
  13111. files on an HPFS drive:  a means the last access time, c means the creation 
  13112. time, and w means the last modification (write) time, which is the default. 
  13113.  
  13114.  
  13115. ΓòÉΓòÉΓòÉ 9.10.40. @FILEWRITE ΓòÉΓòÉΓòÉ
  13116.  
  13117. @FILEWRITE[n,text]:  Writes a line to the file whose handle is n.  Returns the 
  13118. number of bytes written, or "-1" if an error occurred.  n must be a handle 
  13119. returned by @FILEOPEN; or 1 (for standard output) or 2 (for standard error). 
  13120.  
  13121. Be sure to read the cautionary note about file functions under Variable 
  13122. Functions. 
  13123.  
  13124.  
  13125. ΓòÉΓòÉΓòÉ 9.10.41. @FILEWRITEB ΓòÉΓòÉΓòÉ
  13126.  
  13127. @FILEWRITEB[n,length,string]:  Writes the specified number of bytes from string 
  13128. to the file whose handle is n.  Returns the number of bytes written, or "-1" if 
  13129. an error occurred. 
  13130.  
  13131. If you plan to write binary data with @FILEWRITEB, you should open the file in 
  13132. binary mode (see @FILEOPEN).  If you want to write text a line at a time you 
  13133. should use @FILEWRITE instead, and open the file in text mode. 
  13134.  
  13135. Be sure to read the cautionary note about file functions under Variable 
  13136. Functions. 
  13137.  
  13138.  
  13139. ΓòÉΓòÉΓòÉ 9.10.42. @FINDCLOSE ΓòÉΓòÉΓòÉ
  13140.  
  13141. @FINDCLOSE[filename]:  Signals the end of a @FINDFIRST / @FINDNEXT sequence. 
  13142. You must use this function to release the directory search handle used for 
  13143. @FINDFIRST / @FINDNEXT. 
  13144.  
  13145.  
  13146. ΓòÉΓòÉΓòÉ 9.10.43. @FINDFIRST ΓòÉΓòÉΓòÉ
  13147.  
  13148. @FINDFIRST[filename [,-nrhsda]]:  Returns the name of the first file that 
  13149. matches the filename, which may contain wildcards and "include lists."  The 
  13150. second argument, if included, defines the attributes of the files that will be 
  13151. included in the search.  Returns an empty string if no files match.  The 
  13152. attributes are: 
  13153.  
  13154.         N   Normal (no attributes set) 
  13155.         R   Read-only 
  13156.         H   Hidden 
  13157.         S   System 
  13158.         D   Directory 
  13159.         A   Archive 
  13160.  
  13161.  The attributes (other than N) can be combined (for example 
  13162.  %@FINDFIRST[MYFILE,HS]).  You can prefix an attribute with - to mean 
  13163.  "everything except files with this attribute." 
  13164.  
  13165.  @FINDFIRST always skips the "." and ".." entries when processing directory 
  13166.  names. 
  13167.  
  13168.  After @FINDFIRST or the last @FINDNEXT, you must use @FINDCLOSE to avoid 
  13169.  running out of directory search handles. 
  13170.  
  13171.  See the notes under Variable Functions about quoting returned long filenames. 
  13172.  
  13173.  
  13174. ΓòÉΓòÉΓòÉ 9.10.44. @FINDNEXT ΓòÉΓòÉΓòÉ
  13175.  
  13176. @FINDNEXT[filename [,-nrhsda]]:  Returns the name of the next file that matches 
  13177. the filename passed to @FINDFIRST. @FINDNEXT should only be used after a 
  13178. successful call to @FINDFIRST.  The first argument is included for 
  13179. compatibility with previous versions, but is ignored; it can be omitted if the 
  13180. second argument is not used (e.g. %@FINDNEXT[]).  The second argument, if 
  13181. included, defines the attributes of the files that will be included in the 
  13182. search.  Returns an empty string when no more files match.  The attributes are: 
  13183.  
  13184.         N   Normal (no attributes set) 
  13185.         R   Read-only 
  13186.         H   Hidden 
  13187.         S   System 
  13188.         D   Directory 
  13189.         A   Archive 
  13190.  
  13191.  The attributes (other than N) can be combined (for example 
  13192.  %@FINDNEXT[MYFILE,HS]).  You can prefix an attribute with - to mean 
  13193.  "everything except files with this attribute." 
  13194.  
  13195.  @FINDNEXT always skips the "." and ".." entries when processing directory 
  13196.  names. 
  13197.  
  13198.  After @FINDFIRST or the last @FINDNEXT, you must use @FINDCLOSE to avoid 
  13199.  running out of directory search handles. 
  13200.  
  13201.  See the notes under Variable Functions about quoting returned long filenames. 
  13202.  
  13203.  
  13204. ΓòÉΓòÉΓòÉ 9.10.45. @FORMAT ΓòÉΓòÉΓòÉ
  13205.  
  13206. @FORMAT[[-][x][.y],string]:  Reformats a string, truncating it or padding it 
  13207. with spaces as necessary.  If you use the minus [-], the string is 
  13208. left-justified; otherwise, it is right-justified.  The x value is the minimum 
  13209. number of characters in the result.  The y value is the maximum number of 
  13210. characters in the result.  You can combine the options as necessary.  For 
  13211. example: 
  13212.  
  13213.         %@format[12,JPSoftware]         returns "  JPSoftware"
  13214.         %@format[.3,JPSoftware]         returns "JPS"
  13215.  
  13216.  
  13217. ΓòÉΓòÉΓòÉ 9.10.46. @FSTYPE ΓòÉΓòÉΓòÉ
  13218.  
  13219. @FSTYPE[d:]:  Returns the file system type for the specified drive.  @FSTYPE 
  13220. will return "FAT" for a DOS-compatible drive with a file allocation table, 
  13221. "HPFS" for a drive that uses OS/2's high performance file system, or "CDFS" for 
  13222. a CD-ROM drive.  It may return other values if additional file systems have 
  13223. been installed with the IFS= directive in CONFIG.SYS. 
  13224.  
  13225.  
  13226. ΓòÉΓòÉΓòÉ 9.10.47. @FULL ΓòÉΓòÉΓòÉ
  13227.  
  13228. @FULL[filename]:  Returns the fully qualified path and file name of a file. 
  13229.  
  13230. See the notes under Variable Functions about quoting returned long filenames. 
  13231.  
  13232.  
  13233. ΓòÉΓòÉΓòÉ 9.10.48. @IF ΓòÉΓòÉΓòÉ
  13234.  
  13235. @IF[condition,true,false]:  Evaluates the condition and returns a string based 
  13236. on the result.  The condition can include any of the tests allowed in the IF 
  13237. command.  If the condition is true, @IF returns the first result string; if it 
  13238. is false, @IF returns the second string.  For example, "echo %@IF[2 == 
  13239. 2,Correct!,Oops!]" displays "Correct!" 
  13240.  
  13241.  
  13242. ΓòÉΓòÉΓòÉ 9.10.49. @INC ΓòÉΓòÉΓòÉ
  13243.  
  13244. @INC[%var]:  Returns the same value as %@EVAL[%var + 1].  That is, it retrieves 
  13245. and increments the value of a variable.  The variable itself is not changed; to 
  13246. do so, use a command like this: 
  13247.  
  13248.         set var=%@inc[%var]
  13249.  
  13250.  
  13251. ΓòÉΓòÉΓòÉ 9.10.50. @INDEX ΓòÉΓòÉΓòÉ
  13252.  
  13253. @INDEX[string1,string2]:  Returns the position of string2 within string1, or 
  13254. "-1" if string2 is not found.  The first position in string1 is numbered 0. 
  13255.  
  13256.  
  13257. ΓòÉΓòÉΓòÉ 9.10.51. @INSERT ΓòÉΓòÉΓòÉ
  13258.  
  13259. @INSERT[n, string1, string2]:  Inserts string1 into string2 starting at 
  13260. position n.  The first position in the string is postion 0.  For example, 
  13261. %@insert[1,arm,wing] returns the string "warming". 
  13262.  
  13263.  
  13264. ΓòÉΓòÉΓòÉ 9.10.52. @INSTR ΓòÉΓòÉΓòÉ
  13265.  
  13266. @INSTR[start, length, string]:  Returns a substring, starting at the position 
  13267. start and continuing for length characters.  If the length is omitted, it will 
  13268. default to the remainder of the string.  If the length is negative, the start 
  13269. is relative to the right side of the string.  The first character in the string 
  13270. is numbered 0; if the length is negative, the last character is numbered 0. 
  13271.  
  13272. For example, %@INSTR[0,2,%_TIME] gets the current time and extracts the hour; 
  13273. %@INSTR[1,-2,%_TIME] extracts the seconds.  If the string includes commas, it 
  13274. must be quoted with double quotes ["] or back-quotes [`].  The quotes do count 
  13275. in calculating the position of the substring.  @SUBSTR is an older version of 
  13276. the same function. 
  13277.  
  13278.  
  13279. ΓòÉΓòÉΓòÉ 9.10.53. @INT ΓòÉΓòÉΓòÉ
  13280.  
  13281. @INT[n]:  Returns the integer part of the number n. 
  13282.  
  13283.  
  13284. ΓòÉΓòÉΓòÉ 9.10.54. @LABEL ΓòÉΓòÉΓòÉ
  13285.  
  13286. @LABEL[d:]:  Returns the volume label of the specified disk drive. 
  13287.  
  13288.  
  13289. ΓòÉΓòÉΓòÉ 9.10.55. @LEFT ΓòÉΓòÉΓòÉ
  13290.  
  13291. @LEFT[n, string]:  Returns the leftmost n characters from the string.  If n is 
  13292. greater than the length of the string, returns the entire string.  For example, 
  13293. %@left[2,jpsoft] returns the string "jp". 
  13294.  
  13295.  
  13296. ΓòÉΓòÉΓòÉ 9.10.56. @LEN ΓòÉΓòÉΓòÉ
  13297.  
  13298. @LEN[string]:  Returns the length of a string. 
  13299.  
  13300.  
  13301. ΓòÉΓòÉΓòÉ 9.10.57. @LINE ΓòÉΓòÉΓòÉ
  13302.  
  13303. @LINE[filename,n]:  Returns line n from the specified file.  The first line in 
  13304. the file is numbered 0.  "**EOF**" is returned for all line numbers beyond the 
  13305. end of the file. 
  13306.  
  13307. @LINE works with files having lines of no more than 1023 characters; longer 
  13308. lines will not be counted accurately. 
  13309.  
  13310. The @LINE function must read each line of the file to find the line you 
  13311. request, and will therefore cause significant delays if used in a long loop or 
  13312. on a large file.  For a more effective method of processing each line of a file 
  13313. in sequence use the FOR command, or @FILEOPEN and a sequence of @FILEREADs. 
  13314.  
  13315. You can retrieve input from standard input if you specify CON as the filename. 
  13316. If you are redirecting input to @LINE using this feature, you must use command 
  13317. grouping or the redirection will not work properly (you can pipe to @LINE 
  13318. without a command group; this restriction applies only to input redirection). 
  13319. For example: 
  13320.  
  13321.         (echo %@line[con,0]) < myfile.dat
  13322.  
  13323.  
  13324. ΓòÉΓòÉΓòÉ 9.10.58. @LINES ΓòÉΓòÉΓòÉ
  13325.  
  13326. @LINES[filename]:  Returns the line number of the last line in the file, or 
  13327. "-1" if the file is empty.  The first line in the file is numbered 0, so (for 
  13328. example) @LINES will return 0 for a file containing one line.  To get the 
  13329. actual number of lines, use %@INC[%@LINES[filename]]. 
  13330.  
  13331. @LINES works with files having lines of no more than 1023 characters; longer 
  13332. lines will not be counted accurately. 
  13333.  
  13334. @LINES must read each line of the file in order to count it, and will therefore 
  13335. cause significant delays if used in a long loop or on a large file. 
  13336.  
  13337.  
  13338. ΓòÉΓòÉΓòÉ 9.10.59. @LOWER ΓòÉΓòÉΓòÉ
  13339.  
  13340. @LOWER[string]:  Returns the string converted to lower case. 
  13341.  
  13342.  
  13343. ΓòÉΓòÉΓòÉ 9.10.60. @MAKEAGE ΓòÉΓòÉΓòÉ
  13344.  
  13345. @MAKEAGE[date[,time]]:  Returns the date and time (if included) as a single 
  13346. value in the same format as @FILEAGE.  @MAKEAGE can be used to compare the time 
  13347. stamp of a file with a specific date and time, for example: 
  13348.  
  13349.         if %@fileage[myfile] lt %@makeage[1/1/85] echo OLD!
  13350.  
  13351. The value returned by @MAKEAGE can be used for comparisons, but can not be used 
  13352. for date and time calculations because it is not in identifiable units. 
  13353.  
  13354.  
  13355. ΓòÉΓòÉΓòÉ 9.10.61. @MAKEDATE ΓòÉΓòÉΓòÉ
  13356.  
  13357. @MAKEDATE[n]:  Returns a date (formatted according to the current country 
  13358. settings).  n is the number of days since 1/1/80. This is the inverse of @DATE. 
  13359.  
  13360.  
  13361. ΓòÉΓòÉΓòÉ 9.10.62. @MAKETIME ΓòÉΓòÉΓòÉ
  13362.  
  13363. @MAKETIME[n]:  Returns a time (formatted according to the current country 
  13364. settings).  n is the number of seconds since midnight.  This is the inverse of 
  13365. @TIME. 
  13366.  
  13367.  
  13368. ΓòÉΓòÉΓòÉ 9.10.63. @MONTH ΓòÉΓòÉΓòÉ
  13369.  
  13370. @MONTH[mm-dd-yy]:  Returns the month number for the specified date (1-12). 
  13371. MONTH uses the date format and separators mandated by your country code (for 
  13372. example dd.mm.yy in Germany, or yy-mm-dd in Japan). The year can be entered as 
  13373. a 4-digit or 2-digit value.  Two-digit years between 80 and 99 are interpreted 
  13374. as 1980 - 1999; values between 00 and 79 are interpreted as 2000 - 2079. 
  13375.  
  13376.  
  13377. ΓòÉΓòÉΓòÉ 9.10.64. @NAME ΓòÉΓòÉΓòÉ
  13378.  
  13379. @NAME[filename]:  Returns the base name of a file, without the path or 
  13380. extension. 
  13381.  
  13382. See the notes under Variable Functions about quoting returned long filenames. 
  13383.  
  13384.  
  13385. ΓòÉΓòÉΓòÉ 9.10.65. @NUMERIC ΓòÉΓòÉΓòÉ
  13386.  
  13387. @NUMERIC[string]:  Returns "1" if the argument is composed entirely of digits 
  13388. (0 to 9), signs (+ or -), and the thousands and decimal separators.  Otherwise, 
  13389. returns "0".  If the string begins with a decimal separator it is not 
  13390. considered numeric unless the next character is a digit, and there are no more 
  13391. decimal separators within the string.  For example, ".07" is numeric, but ".a" 
  13392. and ".07.01" are not. 
  13393.  
  13394.  
  13395. ΓòÉΓòÉΓòÉ 9.10.66. @PATH ΓòÉΓòÉΓòÉ
  13396.  
  13397. @PATH[filename]:  Returns the path from a file name, including the drive letter 
  13398. and a trailing backslash but not including the base name or extension. 
  13399.  
  13400. See the notes under Variable Functions about quoting returned long filenames. 
  13401.  
  13402.  
  13403. ΓòÉΓòÉΓòÉ 9.10.67. @RANDOM ΓòÉΓòÉΓòÉ
  13404.  
  13405. @RANDOM[min, max]:  Returns a "pseudo-random" value between min and max, 
  13406. inclusive.  Min, max, and the returned value are all integers. 
  13407.  
  13408. The random number generator is initialized from the system clock the first time 
  13409. it is used after the command processor starts, so it will produce a different 
  13410. sequence of random numbers each time you use it. 
  13411.  
  13412.  
  13413. ΓòÉΓòÉΓòÉ 9.10.68. @READSCR ΓòÉΓòÉΓòÉ
  13414.  
  13415. @READSCR[row,col,length]:  Returns the text displayed on the screen at the 
  13416. specified location.  The upper left corner of the screen is location 0,0. 
  13417.  
  13418. The row and column can be specified as an offset from the current cursor 
  13419. location by preceding either value with a [+] or [-].  For example, 
  13420.  
  13421.         %@readscr[-2,+2,10]
  13422.  
  13423. returns 10 characters from the screen, starting 2 rows above and 2 columns to 
  13424. the right of the current cursor position. 
  13425.  
  13426. You can also specify the row and column as offsets from the current cursor 
  13427. position.  Begin the value with a plus sign [+] to read the screen the 
  13428. specified number of rows below (or columns to the right of) the current 
  13429. position, or with a minus sign [-] to read the screen above (or to the left of) 
  13430. the current position. 
  13431.  
  13432.  
  13433. ΓòÉΓòÉΓòÉ 9.10.69. @READY ΓòÉΓòÉΓòÉ
  13434.  
  13435. @READY[d:]:  Returns "1" if the specified drive is ready; otherwise returns 
  13436. "0". 
  13437.  
  13438.  
  13439. ΓòÉΓòÉΓòÉ 9.10.70. @REMOTE ΓòÉΓòÉΓòÉ
  13440.  
  13441. @REMOTE[d:]:  Returns "1" if the specified drive is a remote (network) drive; 
  13442. otherwise returns "0". 
  13443.  
  13444.  
  13445. ΓòÉΓòÉΓòÉ 9.10.71. @REMOVABLE ΓòÉΓòÉΓòÉ
  13446.  
  13447. @REMOVABLE[d:]:  Returns "1" if the specified drive is removable (e.g., a 
  13448. floppy disk or removable hard disk); otherwise returns "0". 
  13449.  
  13450.  
  13451. ΓòÉΓòÉΓòÉ 9.10.72. @REPEAT ΓòÉΓòÉΓòÉ
  13452.  
  13453. @REPEAT[c,n]:  Returns the character c repeated n times. 
  13454.  
  13455.  
  13456. ΓòÉΓòÉΓòÉ 9.10.73. @REPLACE ΓòÉΓòÉΓòÉ
  13457.  
  13458. @REPLACE[string1, string2, text]:  Replaces all occurrences of string1 in the 
  13459. text string with string2.  For example, %@replace[w,ch,warming] returns the 
  13460. string "charming".  The search is case-sensitive. 
  13461.  
  13462.  
  13463. ΓòÉΓòÉΓòÉ 9.10.74. @REXX ΓòÉΓòÉΓòÉ
  13464.  
  13465. @REXX[expr]:  Calls the REXX interpreter to execute the expression.  Returns 
  13466. the result string from REXX; if the REXX expression does not return a string, 
  13467. @REXX returns the REXX numeric result code.  See REXX Support for more 
  13468. information. 
  13469.  
  13470.  
  13471. ΓòÉΓòÉΓòÉ 9.10.75. @RIGHT ΓòÉΓòÉΓòÉ
  13472.  
  13473. @RIGHT[n,string]:  Returns the rightmost n characters from the string.  If n is 
  13474. greater than the length of the string, returns the entire string.  For example, 
  13475. %@right[4,jpsoft] returns the string "soft." 
  13476.  
  13477.  
  13478. ΓòÉΓòÉΓòÉ 9.10.76. @SEARCH ΓòÉΓòÉΓòÉ
  13479.  
  13480. @SEARCH[filename[,path]]:  Searches for the filename using the PATH environment 
  13481. variable or the specified path, appending an extension if one isn't specified. 
  13482.  
  13483. @SEARCH returns the fully-expanded name of the file including drive, path, base 
  13484. name, and extension, or an empty string if a matching file is not found.  If 
  13485. wildcards are used in the filename, @SEARCH will search for the first file that 
  13486. matches the wildcard specification, and return the drive and path for that file 
  13487. plus the wildcard filename (e.g., E:\UTIL\*.COM). 
  13488.  
  13489.  
  13490. ΓòÉΓòÉΓòÉ 9.10.77. @SELECT ΓòÉΓòÉΓòÉ
  13491.  
  13492. @SELECT[filename,top,left,bottom,right,title[,1]]:  Pops up a selection window 
  13493. with the lines from the specified file, allowing you to display menus or other 
  13494. selection lists from within a batch file.  You can move through the selection 
  13495. window with standard popup window navigation keystrokes, including character 
  13496. matching.  @SELECT returns the text of the line the scrollbar is on if you 
  13497. press Enter, or an empty string if you press Esc.  The filename must be in 
  13498. quotes if it contains whitespace or special characters.  The file size is 
  13499. limited only by available memory.  To select from lines passed through input 
  13500. redirection or a pipe, use CON as the filename.  If you use the optional 1 
  13501. argument after the window title, the list will be sorted alphabetically. 
  13502.  
  13503.  
  13504. ΓòÉΓòÉΓòÉ 9.10.78. @STRIP ΓòÉΓòÉΓòÉ
  13505.  
  13506. @STRIP[chars,string]:  Removes the characters in chars from the string and 
  13507. returns the result.  For example, %@STRIP[AaEe,All Good Men] returns "ll Good 
  13508. Mn".  The test is case sensitive.  To include a comma in the chars string, 
  13509. enclose the entire first argument in double quotes.  @STRIP will remove the 
  13510. quotes before processing the string. 
  13511.  
  13512.  
  13513. ΓòÉΓòÉΓòÉ 9.10.79. @SUBSTR ΓòÉΓòÉΓòÉ
  13514.  
  13515. @SUBSTR[string,start,length]:  This is an older version of @INSTR The string 
  13516. parameter is at the start of the @SUBSTR argument list, and therefore cannot 
  13517. contain commas (because any commas in the string would be taken as argument 
  13518. separators).  @INSTR, which has the string argument last, does not have this 
  13519. restriction. 
  13520.  
  13521.  
  13522. ΓòÉΓòÉΓòÉ 9.10.80. @TIME ΓòÉΓòÉΓòÉ
  13523.  
  13524. @TIME[hh:mm:ss]:  Returns the number of seconds since midnight for the 
  13525. specified time.  The time must be in 24-hour format; "am" and "pm" cannot be 
  13526. used. 
  13527.  
  13528.  
  13529. ΓòÉΓòÉΓòÉ 9.10.81. @TIMER ΓòÉΓòÉΓòÉ
  13530.  
  13531. @TIMER[n]:  Returns the current split time for a stopwatch started with the 
  13532. TIMER command.  The value of n specifies the timer to read and can be 1, 2, or 
  13533. 3. 
  13534.  
  13535.  
  13536. ΓòÉΓòÉΓòÉ 9.10.82. @TRIM ΓòÉΓòÉΓòÉ
  13537.  
  13538. @TRIM[string]:  Returns the string with the leading and trailing white space 
  13539. (space and tab characters) removed. 
  13540.  
  13541.  
  13542. ΓòÉΓòÉΓòÉ 9.10.83. @UNIQUE ΓòÉΓòÉΓòÉ
  13543.  
  13544. @UNIQUE[d:\path]:  Creates a zero-length file with a unique name in the 
  13545. specified directory, and returns the full name and path.  If no path is 
  13546. specified, the file will be created in the current directory.  The file name 
  13547. will be FAT-compatible (8 character name and 3-character extension) regardless 
  13548. of whether the file is created on a FAT or HPFS drive.  This function allows 
  13549. you to create a temporary file without overwriting an existing file. 
  13550.  
  13551.  
  13552. ΓòÉΓòÉΓòÉ 9.10.84. @UPPER ΓòÉΓòÉΓòÉ
  13553.  
  13554. @UPPER[string]:  Returns the string converted to upper case. 
  13555.  
  13556.  
  13557. ΓòÉΓòÉΓòÉ 9.10.85. @WILD ΓòÉΓòÉΓòÉ
  13558.  
  13559. @WILD[string1,string2]:  Performs a comparison of the two strings, and returns 
  13560. "1" if they match or "0" if they don't match.  The second argument, string2, 
  13561. may contain wildcards or extended wildcards; the first argument, string1, may 
  13562. not.  The test is not case sensitive.  The following example tests whether the 
  13563. \UTIL directory (or any directory that begins with the characters UTIL) is 
  13564. included in the PATH: 
  13565.  
  13566.         if %@wild[%path,*\UTIL*] == 1 command
  13567.  
  13568.  
  13569. ΓòÉΓòÉΓòÉ 9.10.86. @WORD ΓòÉΓòÉΓòÉ
  13570.  
  13571. @WORD[["xxx",]n,string]:  Returns the nth word in a string.  The first word is 
  13572. numbered 0.  If n is negative, words are returned from the end of the string. 
  13573. The first argument is a list of word separators you want to use; if you don't 
  13574. specify it, only spaces, tabs, and commas are considered to be word separators. 
  13575. For example: 
  13576.  
  13577.         %@WORD[2,NOW IS THE TIME]     returns "THE"
  13578.         %@WORD[-0,NOW IS THE TIME]    returns "TIME"
  13579.         %@WORD[-2,NOW IS THE TIME]    returns "IS"
  13580.         %@WORD["=",1,2 + 2=4]         returns "4"
  13581.  
  13582.  
  13583. ΓòÉΓòÉΓòÉ 9.10.87. @WORDS ΓòÉΓòÉΓòÉ
  13584.  
  13585. @WORDS[["xxx",]string]:  Returns the number of words in the string.  The 
  13586. optional list of separators follows the same format as @WORD.  If the string 
  13587. argument is enclosed in quotation marks, you must enter a list of separators as 
  13588. well. 
  13589.  
  13590.  
  13591. ΓòÉΓòÉΓòÉ 9.10.88. @YEAR ΓòÉΓòÉΓòÉ
  13592.  
  13593. @YEAR[mm-dd-yy]:  Returns the year for the specified date.  YEAR uses the date 
  13594. format and separators mandated by your country code (for example dd.mm.yy in 
  13595. Germany, or yy-mm-dd in Japan).  The year can be specified as two digits or 
  13596. four digits; @YEAR returns the same number of digits included in its argument. 
  13597. Two-digit years between 80 and 99 are interpreted as 1980 - 1999; values 
  13598. between 00 and 79 are interpreted as 2000 - 2079. 
  13599.  
  13600.  
  13601. ΓòÉΓòÉΓòÉ 10. 4OS2.INI ΓòÉΓòÉΓòÉ
  13602.  
  13603. Most of the configuration of 4OS2 is controlled through a file of 
  13604. initialization information called 4OS2.INI, which is discussed in the following 
  13605. sections: 
  13606.  
  13607.             Modifying the .INI File 
  13608.             Using the .INI File 
  13609.             .INI File Sections 
  13610.             .INI File Directives 
  13611.             .INI File Examples 
  13612.  
  13613.  We also discuss many ways of configuring 4OS2 in other sections of the help, 
  13614.  for example: 
  13615.  
  13616.         *   With aliases you can set default options for internal commands and 
  13617.             create new commands. 
  13618.         *   With executable extensions you can associate data files with the 
  13619.             applications you use to open them. 
  13620.         *   With the FILECOMPLETION environment variable and the FileCompletion 
  13621.             .INI directive you can customize filename completion to match the 
  13622.             command you are working with. 
  13623.         *   With the COLORDIR environment variable and the ColorDir .INI 
  13624.             directive you can set the colors used by the DIR and SELECT 
  13625.             commands. 
  13626.         *   With the SETDOS command, you can change some aspects of the command 
  13627.             processor's operation "on the fly." 
  13628.  
  13629.  
  13630. ΓòÉΓòÉΓòÉ 10.1. Modifying the .INI File ΓòÉΓòÉΓòÉ
  13631.  
  13632. You can create, add to, and modify the .INI file in 2 ways: with the OPTION 
  13633. command and by editing the file with any ASCII editor.  OPTION displays a set 
  13634. of dialogs which allow you to modify the settings that are used most often. 
  13635. When you exit from the dialogs, you can select the Save button to save your 
  13636. changes in the .INI file for use in the current session and all future 
  13637. sessions, select the Use or OK button to use your changes in the current 
  13638. session only, or discard the changes you have made by selecting the Cancel 
  13639. button.  See the OPTION command for additional details. 
  13640.  
  13641. Changes you make in the Startup section of the OPTION dialogs will only take 
  13642. effect when you restart the session or window in which 4OS2 is running. 
  13643.  
  13644. OPTION handles most standard .INI file settings.  A few more advanced settings, 
  13645. as well as all settings that affect the interpretation of keystrokes, cannot be 
  13646. modified with OPTION and must be inserted or modified manually.  For more 
  13647. details see the OPTION command. 
  13648.  
  13649. You can also create, add to, and edit the 4OS2.INI file "manually" with any 
  13650. ASCII text editor.  Each command processor reads its .INI file when it starts, 
  13651. and configures itself accordingly. The .INI file is not re-read when you change 
  13652. it manually.  For manual changes to take effect, you must restart the session 
  13653. or window in which 4OS2 is running.  If you edit the .INI file manually, make 
  13654. sure you save the file in ASCII format. 
  13655.  
  13656. Each item that you can include in the .INI file has a default value.  You only 
  13657. need to include entries in the file for settings that you want to change from 
  13658. their default values. 
  13659.  
  13660. Format: 
  13661.  
  13662. Most lines in the .INI file consist of a one-word directive, an equal sign [=], 
  13663. and a value.  For example, in the following line, the word "Environment" is the 
  13664. directive and "2048" is the value: 
  13665.  
  13666.         Environment = 2048
  13667.  
  13668. Any spaces before or after the equal sign are ignored. 
  13669.  
  13670. If you have a long string to enter in the .INI file (for example, for the 
  13671. ColorDir directive), you must enter it all on one line.  Strings cannot be 
  13672. "continued" to a second line.  Each line may be up to 1023 characters long. 
  13673.  
  13674. The format of the value part of a directive line depends on the individual 
  13675. directive.  It may be a numeric value, a single character, a choice (like "Yes" 
  13676. or "No"), a color setting, a key name, a path, a filename, or a text string. 
  13677. The value begins with the first non-blank character after the equal sign and 
  13678. ends at the end of the line or the beginning of a comment. 
  13679.  
  13680. Blank lines are ignored in the .INI file and can be used to separate groups of 
  13681. directives.  You can place comments in the file by beginning a line with a 
  13682. semicolon [;].  You can also place comments at the end of any line except one 
  13683. containing a text string value.  To do so, enter at least one space or tab 
  13684. after the value, a semicolon, and your comment, like this: 
  13685.  
  13686.         Environment = 2048     ;set standard environment size
  13687.  
  13688. If you try to place a comment at the end of a string value, the comment will 
  13689. become part of the string and will probably cause an error. 
  13690.  
  13691. If you use the OPTION dialogs to modify the .INI file, comments on lines 
  13692. modified from within the dialogs will not be preserved when the new lines are 
  13693. saved.  To be sure .INI file comments are preserved, put them on separate lines 
  13694. in the file 
  13695.  
  13696. If you want to include the text of one .INI file within another (for example, 
  13697. if you have a set of common directives used by several JP Software products), 
  13698. see the Include directive. 
  13699.  
  13700.  
  13701. ΓòÉΓòÉΓòÉ 10.2. Using the .INI File ΓòÉΓòÉΓòÉ
  13702.  
  13703. Some settings in the .INI file are initialized when you install 4OS2, so you 
  13704. will probably have a 4OS2.INI file even if you didn't create one yourself. 
  13705.  
  13706. 4OS2 primary shells search for the .INI file in three places: 
  13707.  
  13708.         *   If there is an "@d:\path\inifile" option on the startup command 
  13709.             line, the command processor will use the path and file name 
  13710.             specified there, and will not look elsewhere.  See Starting 4OS2 
  13711.             for details. 
  13712.         *   If there is no .INI file name on the startup command line, the 
  13713.             search proceeds to the same directory where the command processor 
  13714.             program file (4OS2.EXE) is stored.  This is the "normal" location 
  13715.             for the .INI file.  4OS2 determines this directory automatically. 
  13716.         *   If the .INI file is not found in the directory where the program 
  13717.             file is stored, a final check is made in the root directory of the 
  13718.             boot drive. 
  13719.  
  13720.  When 4OS2 is loaded as a secondary shell, it does not search for the .INI 
  13721.  file.  Instead, it retrieves the primary shell's .INI file data, processes the 
  13722.  [Secondary] section of the original .INI file if necessary (see .INI File 
  13723.  Sections), and then processes any "@d:\path\inifile" option on the secondary 
  13724.  shell command line (see Starting 4OS2).  You can override this behavior with 
  13725.  the NextINIFile directive. 
  13726.  
  13727.  Secondary shells automatically inherit the configuration settings currently in 
  13728.  effect in the previous shell.  If values have been changed by SETDOS since the 
  13729.  primary shell started, the current values will be passed to the secondary 
  13730.  shell.  If the previous shell's .INI file had a [Secondary] section, it will 
  13731.  then be read and processed (see .INI File Sections.  If not, the previous 
  13732.  shell's settings will remain in effect. 
  13733.  
  13734.  For example, you might set BatchEcho to Yes in the .INI file, to enable batch 
  13735.  file echo.  If you then use SETDOS /V0 to turn off batch file echoing in the 
  13736.  primary shell, then any secondary shells will inherit the SETDOS setting, 
  13737.  rather than the original value from the .INI file; i.e., batch files in the 
  13738.  secondary shell will default to no echo. 
  13739.  
  13740.  If you want to force secondary shells to start with a specific value for a 
  13741.  particular directive, regardless of any changes made with SETDOS in a previous 
  13742.  shell, repeat the directive in the [Secondary] section of the .INI file. 
  13743.  
  13744.  The SETDOS command can override several of the .INI file directives.  For 
  13745.  example, the cursor shape used by 4OS2 can be adjusted either with the 
  13746.  CursorIns and CursorOver directives or the SETDOS /S command.  The 
  13747.  correspondence between SETDOS options and .INI directives is noted with each 
  13748.  directive, and under each option of the SETDOS command. 
  13749.  
  13750.  When the command processor detects an error while processing the .INI file, it 
  13751.  displays an error message and prompts you to press a key to continue 
  13752.  processing the file.  This allows you to note any errors before the startup 
  13753.  process continues.  The directive in error will retain its previous or default 
  13754.  value.  Only the most catastrophic errors (like a disk read failure) will 
  13755.  terminate processing of the remainder of the .INI file.  If you don't want a 
  13756.  pause after each error, use a "PauseOnError = No" directive at the beginning 
  13757.  of the .INI file. 
  13758.  
  13759.  If you need to test different values for an .INI directive without repeatedly 
  13760.  editing the .INI file, use the OPTION command or see the INIQuery directive. 
  13761.  
  13762.  
  13763. ΓòÉΓòÉΓòÉ 10.3. .INI File Sections ΓòÉΓòÉΓòÉ
  13764.  
  13765. The .INI file has three possible sections:  the first or global section, named 
  13766. [4OS2]; the [Primary] section; and the [Secondary] section.  Each section is 
  13767. identified by the section name in square brackets on a line by itself. 
  13768.  
  13769. Directives in the global section are effective in all shells.  In most cases, 
  13770. this is the only section you will need.  Any changes you make to the .INI file 
  13771. with the OPTION command are stored in the global section. 
  13772.  
  13773. The [Primary] and [Secondary] sections include directives that are used only in 
  13774. primary and secondary shells, respectively.  You don't need to set up these 
  13775. sections unless you want different directives for primary and secondary shells. 
  13776.  
  13777. Directives in the [Primary] section are used for the first or primary shell. 
  13778. The values are passed automatically to all secondary shells, unless overridden 
  13779. by a directive with the same name in the [Secondary] section. 
  13780.  
  13781. Directives in the [Secondary] section are used in secondary shells only, and 
  13782. override any corresponding primary shell settings.  For example, these lines in 
  13783. the .INI file: 
  13784.  
  13785.         [Primary]
  13786.         ScreenRows = 25
  13787.  
  13788.         [Secondary]
  13789.         ScreenRows = 50
  13790.  
  13791. mean to assume that you have 25 rows on the screen in the primary shell and 50 
  13792. lines in all secondary shells. 
  13793.  
  13794. Sections that begin with any name other than [4OS2], [Primary], or [Secondary] 
  13795. are ignored. 
  13796.  
  13797.  
  13798. ΓòÉΓòÉΓòÉ 10.4. .INI File Directives ΓòÉΓòÉΓòÉ
  13799.  
  13800. For information on specific directives see the separate topic for each type of 
  13801. directive: 
  13802.  
  13803.             Initialization Directives 
  13804.             Configuration Directives 
  13805.             Color Directives 
  13806.             Key Mapping Directives 
  13807.             Advanced Directives 
  13808.  
  13809.  These topics list the directives, with a one-line description of each, and a 
  13810.  cross-reference which selects a full screen help topic on that directive. A 
  13811.  few of the directives are simple enough that the one-line description is 
  13812.  sufficient, but in most cases you should check for any additional information 
  13813.  in the cross-reference topic if you are not already familiar with the 
  13814.  directive. 
  13815.  
  13816.  You can also obtain help on most directives with a HELP directive command at 
  13817.  the prompt. 
  13818.  
  13819.  There are 8 types of directives in the .INI file.  The different types of 
  13820.  directives are shown in the descriptions as follows: 
  13821.  
  13822.         *   Name = nnnn (1234):  This directive takes a numeric value which 
  13823.             replaces the "nnnn."  The default value is shown in parentheses. 
  13824.         *   Name = c (X):  This directive accepts a single character as its 
  13825.             value.  The default character is shown in parentheses.  You must 
  13826.             type in the actual character; you cannot use a key name. 
  13827.         *   Name = CHOICE1 | Choice2 | ... :  This directive takes a choice 
  13828.             value.  The possible choices are listed, separated by vertical 
  13829.             bars.  The default value is shown in all upper case letters in the 
  13830.             directive description, but in your file any of the choices can be 
  13831.             entered in upper case or lower case.  For example, if the choices 
  13832.             were shown as "YES | No" then "YES" is the default. 
  13833.         *   Name = Color:  This directive takes a color specification.  See 
  13834.             Colors and Color Names. 
  13835.         *   Name = Key (Default):  This directive takes a key specification. 
  13836.             See Key Names. 
  13837.         *   Name = Path:  This directive takes a path specification, but not a 
  13838.             filename.  The value should include both a drive and path (e.g., 
  13839.             C:\4OS2) to avoid any possible ambiguities.  A trailing backslash 
  13840.             [\] at the end of the path name is acceptable but not required. 
  13841.             Any default path is described in the text. 
  13842.         *   Name = File:  This directive takes a filename.  We recommend that 
  13843.             you use a full filename including the drive letter and path to 
  13844.             avoid any possible ambiguities.  Any default filename is described 
  13845.             in the text. 
  13846.         *   Name = String:  This directive takes a string in the format shown. 
  13847.             The text describes the default value and any additional 
  13848.             requirements for formatting the string correctly.  No comments are 
  13849.             allowed. 
  13850.  
  13851.  4OS2 contains a fixed-length area for storing strings entered in the .INI 
  13852.  file, including file names, paths, and other strings.  This area is large and 
  13853.  is unlikely to overflow; if it does, you will receive an error message.  If 
  13854.  this occurs, reduce the complexity of your .INI file or contact our technical 
  13855.  support department for assistance. 
  13856.  
  13857.  
  13858. ΓòÉΓòÉΓòÉ 10.4.1. Initialization Directives ΓòÉΓòÉΓòÉ
  13859.  
  13860. The directives in this section control how 4OS2 starts and where it looks for 
  13861. its files.  The initialization directives are: 
  13862.  
  13863.         4StartPath          Path for 4START and 4EXIT 
  13864.         DirHistory          Size of directory history list 
  13865.         DuplicateBugs       Duplicate bugs in CMD.EXE 
  13866.         HelpBook            Books to load in help system 
  13867.         History             Size of history list 
  13868.         INIQuery            Query for each line in 4OS2.INI 
  13869.         LocalAliases        Local vs. global aliases 
  13870.         LocalHistory        Local vs. global directory history 
  13871.         LocalHistory        Local vs. global history 
  13872.         PauseOnError        Pause on errors in 4OS2.INI 
  13873.         SwapFilePath        Path to OS/2 swap file 
  13874.         TreePath            Path for directory database 
  13875.         WindowState         Initial state for the 4OS2 window 
  13876.         WindowX, WindowY, WindowWidth, WindowHeightInitial size and position of 
  13877.                             the 4OS2 window 
  13878.  
  13879.  
  13880. ΓòÉΓòÉΓòÉ 10.4.1.1. 4StartPath ΓòÉΓòÉΓòÉ
  13881.  
  13882. 4StartPath = Path:  Sets the drive and directory where the 4START and 4EXIT 
  13883. batch files (if any) are located. 
  13884.  
  13885.  
  13886. ΓòÉΓòÉΓòÉ 10.4.1.2. ┬áDirHistory (directive) ΓòÉΓòÉΓòÉ
  13887.  
  13888. DirHistory = nnnn (256):  Sets the amount of memory allocated to the directory 
  13889. history in bytes.  The allowable range of values is 256 to 32767 bytes.  If you 
  13890. use a global directory history list the DirHistory value will be ignored in all 
  13891. shells except the shell which first establishes the global list. 
  13892.  
  13893.  
  13894. ΓòÉΓòÉΓòÉ 10.4.1.3. DuplicateBugs ΓòÉΓòÉΓòÉ
  13895.  
  13896. DuplicateBugs = YES | No:  Tells the 4OS2 parser to duplicate certain 
  13897. well-known bugs in CMD.EXE.  The only bug currently replicated is in the IF 
  13898. command. 
  13899.  
  13900.  
  13901. ΓòÉΓòÉΓòÉ 10.4.1.4. HelpBook ΓòÉΓòÉΓòÉ
  13902.  
  13903. HelpBook = String:  Sets the names of the "books" to be loaded when 4OS2 help 
  13904. is invoked with the HELP command or the F1 key.  The default is 4OS2+CMDREF 
  13905. which loads the 4OS2 help and the OS/2 command reference. 
  13906.  
  13907.  
  13908. ΓòÉΓòÉΓòÉ 10.4.1.5. History (directive) ΓòÉΓòÉΓòÉ
  13909.  
  13910. History = nnnn (1024):  Sets the amount of memory allocated to the command 
  13911. history list in bytes.  The allowable range of values is 256 to 32767 bytes. 
  13912. If you use a global history list (see Command History and Recall), the History 
  13913. value is ignored in all shells except the shell which first establishes the 
  13914. global list. 
  13915.  
  13916.  
  13917. ΓòÉΓòÉΓòÉ 10.4.1.6. INIQuery ΓòÉΓòÉΓòÉ
  13918.  
  13919. INIQuery = Yes | NO:  If set to Yes, a prompt will be displayed before 
  13920. execution of each subsequent line in the current .INI file.  This allows you to 
  13921. modify certain directives when you start 4OS2 in order to test different 
  13922. configurations.  INIQuery can be reset to No at any point in the file. 
  13923. Normally INIQuery = Yes is only used during testing of other .INI file 
  13924. directives. 
  13925.  
  13926. The prompt generated by INIQuery = Yes is: 
  13927.  
  13928.         [contents of the line]  (Y/N/Q/R/E)  ?
  13929.  
  13930. At this prompt, you may enter: 
  13931.  
  13932.         Y = Yes:    Process this line and go on to the next. 
  13933.         N = No:     Skip this line and go on to the next. 
  13934.         Q = Quit:   Skip this line and all subsequent lines. 
  13935.         R = Rest:   Execute this and all subsequent lines. 
  13936.         E = Edit:   Edit the value for this entry. 
  13937.  
  13938.  If you choose E for Edit, you can enter a new value for the directive, but not 
  13939.  a new directive name. 
  13940.  
  13941.  For example, if you have found a compatibility problem you think may be 
  13942.  related to 4OS2's character (as opposed to line) input mode, you might change 
  13943.  your 4OS2.INI file so a part of it read as follows: 
  13944.  
  13945.           INIQuery = Yes
  13946.           LineInput = Yes
  13947.           INIQuery = No
  13948.  
  13949.  You could then choose to process, ignore, or edit the LineInput directive each 
  13950.  time 4OS2 started.  This would allow you to check whether changing the line 
  13951.  input mode would resolve the compatibility problem. 
  13952.  
  13953.  
  13954. ΓòÉΓòÉΓòÉ 10.4.1.7. LocalAliases ΓòÉΓòÉΓòÉ
  13955.  
  13956. LocalAliases = Yes | NO:  No forces all copies of 4OS2 to share the same alias 
  13957. list.  Yes keeps the lists for each shell separate.  See ALIAS for more details 
  13958. on local and global alias lists. 
  13959.  
  13960.  
  13961. ΓòÉΓòÉΓòÉ 10.4.1.8. LocalDirHistory ΓòÉΓòÉΓòÉ
  13962.  
  13963. LocalDirHistory = Yes | NO:  No forces all copies of command processor to share 
  13964. the same directory history.  Yes keeps the directory histories for each shell 
  13965. separate.  See Local and Global Directory History for more details. 
  13966.  
  13967.  
  13968. ΓòÉΓòÉΓòÉ 10.4.1.9. LocalHistory ΓòÉΓòÉΓòÉ
  13969.  
  13970. LocalHistory = Yes | NO:  No forces all copies of 4OS2 to share the same 
  13971. history list.  Yes keeps the lists for each shell separate.  See Command 
  13972. History and Recall for more details on local and global history lists. 
  13973.  
  13974.  
  13975. ΓòÉΓòÉΓòÉ 10.4.1.10. PauseOnError ΓòÉΓòÉΓòÉ
  13976.  
  13977. PauseOnError = YES | No:  Yes forces a pause with the message "Error in 
  13978. filename, press any key to continue processing" after displaying any error 
  13979. message related to a specific line in the .INI file.  No continues processing 
  13980. with no pause after an error message is displayed. 
  13981.  
  13982.  
  13983. ΓòÉΓòÉΓòÉ 10.4.1.11. SwapFilePath ΓòÉΓòÉΓòÉ
  13984.  
  13985. SwapFilePath = Path | File:  Specifies the path to the OS/2 swap file so that 
  13986. the MEMORY command can find it.  You can either specify a full path and 
  13987. filename for the swap file or just the path.  If you specify a path only, 4OS2 
  13988. assumes that the file is called SWAPPER.DAT.  If SwapFilePath is not used, 4OS2 
  13989. assumes that the file is named SWAPPER.DAT and stored in the \OS2\SYSTEM 
  13990. directory of the boot drive. 
  13991.  
  13992.  
  13993. ΓòÉΓòÉΓòÉ 10.4.1.12. TreePath ΓòÉΓòÉΓòÉ
  13994.  
  13995. TreePath = Path:  Sets the location of JPSTREE.IDX, the file used for extended 
  13996. directory searches By default, the file is placed in the root directory of 
  13997. drive C:\. 
  13998.  
  13999.  
  14000. ΓòÉΓòÉΓòÉ 10.4.1.13. WindowState ΓòÉΓòÉΓòÉ
  14001.  
  14002. WindowState = STANDARD | Maximize | Minimize:  Sets the initial state of the 
  14003. 4OS2 window.  Standard puts the window in the default position on the OS/2 
  14004. desktop, and is the default setting. Maximize maximizes the window; Minimize 
  14005. minimizes it.  If you use Maximize or Minimize, you may see the 4OS2 window 
  14006. appear briefly in the Standard position as it is created by OS/2, then switch 
  14007. to the new state. 
  14008.  
  14009.  
  14010. ΓòÉΓòÉΓòÉ 10.4.1.14. WindowX, WindowY, WindowWidth, WindowHeight ΓòÉΓòÉΓòÉ
  14011.  
  14012. WindowX = nnnn, WindowY = nnnn, WindowWidth = nnnn, WindowHeight = nnnn:  These 
  14013. 4 directives set the initial size and position of the 4OS2 window.  The 
  14014. measurements are in pixels or pels.  WindowX and WindowY refer to the position 
  14015. of the bottom left corner of the window relative to the bottom left corner of 
  14016. the screen. 
  14017.  
  14018.  
  14019. ΓòÉΓòÉΓòÉ 10.4.2. Configuration Directives ΓòÉΓòÉΓòÉ
  14020.  
  14021. These directives control the way that 4OS2 operate.  Some can be changed with 
  14022. the SETDOS command while 4OS2 is running. Any corresponding SETDOS command is 
  14023. listed in the description of each directive.  The configuration directives are: 
  14024.  
  14025.         AmPm                Time display format 
  14026.         AppendToDir         "\" on directory names in filename completion 
  14027.         BatchEcho           Default batch file echo state 
  14028.         BeepFreq            Default beep frequency 
  14029.         BeepLength          Default beep length 
  14030.         CDDWinLeft, CDDWinTop, CDDWinWidth, CDDWinHeightInitial position and 
  14031.                             size of the directory change window 
  14032.         CommandSep          Multiple command separator character 
  14033.         CursorIns           Cursor shape in insert mode 
  14034.         CursorOver          Cursor shape in overstrike mode 
  14035.         DecimalChar         DecimalChar 
  14036.         DescriptionMax      Maximum length of file descriptions 
  14037.         DescriptionName     Name of file to hold file descriptions 
  14038.         Descriptions        Enable / disable description processing 
  14039.         EditMode            Editing mode (insert / overstrike) 
  14040.         EscapeChar          4OS2 escape character 
  14041.         EvalMax             Max digits after decimal point in @EVAL 
  14042.         EvalMin             Min digits after decimal point in @EVAL 
  14043.         ExecWait            Wait for external programs at command line 
  14044.         FileCompletion      Filename completion by extension 
  14045.         FuzzyCD             Selects Extended Directory Search mode 
  14046.         HistCopy            History copy mode 
  14047.         HistLogName         History log file name 
  14048.         HistMin             Minimum command length to save 
  14049.         HistMove            History move mode 
  14050.         HistWrap            History wrap mode 
  14051.         LineInput           Enable / disable line input mode 
  14052.         ListRowStart        Starting row number for LIST and FFIND 
  14053.         LogName             Log file name 
  14054.         NoClobber           Overwrite protection for output redirection 
  14055.         ParameterChar       Alias / batch file parameter character 
  14056.         PathExt             Enable or disable the PATHEXT variable 
  14057.         PopupWinLeft, PopupWinTop, PopupWinWidth, PopupWinHeightInitial 
  14058.                             position and size of popup windows 
  14059.         Printer             LIST print device 
  14060.         ScreenRows          Screen height 
  14061.         TabStops            Tab width in LIST 
  14062.         ThousandsChar       Thousands separator 
  14063.         UnixPaths           Enable or disable slash in command paths 
  14064.         UpperCase           Force file names to upper case 
  14065.  
  14066.  
  14067. ΓòÉΓòÉΓòÉ 10.4.2.1. AmPm ΓòÉΓòÉΓòÉ
  14068.  
  14069. AmPm = Yes | NO | Auto:  Yes displays times in 12-hour format with a trailing 
  14070. "a" for AM or "p" for PM.  The default of No forces a display in 24-hour time 
  14071. format.  Auto formats the time according to the country code set for your 
  14072. system.  AmPm controls the time displays used by DIR and SELECT, in LOG files, 
  14073. and the output of the TIMER, DATE, and TIME commands.  It has no effect on 
  14074. %_TIME, %@MAKETIME, the $t and $T options of PROMPT, or date and time ranges. 
  14075.  
  14076.  
  14077. ΓòÉΓòÉΓòÉ 10.4.2.2. AppendToDir ΓòÉΓòÉΓòÉ
  14078.  
  14079. AppendToDir = Yes | NO:  Yes appends a trailing "\" to directory names when 
  14080. doing filename completion.  The default is No.  (Regardless of the setting of 
  14081. this directive, a trailing backslash is always appended to a directory name at 
  14082. the beginning of the command line to enable automatic directory changes.) 
  14083.  
  14084.  
  14085. ΓòÉΓòÉΓòÉ 10.4.2.3. BatchEcho ΓòÉΓòÉΓòÉ
  14086.  
  14087. BatchEcho = YES | No:  Sets the default batch echo mode. Yes enables echoing of 
  14088. all batch file commands unless ECHO is explicitly set off in the batch file. 
  14089. No disables batch file echoing unless ECHO is explicitly set on.  Also see 
  14090. SETDOS /V. 
  14091.  
  14092.  
  14093. ΓòÉΓòÉΓòÉ 10.4.2.4. BeepFreq ΓòÉΓòÉΓòÉ
  14094.  
  14095. BeepFreq = nnnn (440):  Sets the default BEEP command frequency in Hz.  This is 
  14096. also the frequency for "error" beeps (for example, if you press an illegal 
  14097. key).  To disable all error beeps set this or BeepLength to 0.  If you do, the 
  14098. BEEP command will still be operable, but will not produce sound unless you 
  14099. explicitly specify the frequency and duration. 
  14100.  
  14101.  
  14102. ΓòÉΓòÉΓòÉ 10.4.2.5. BeepLength ΓòÉΓòÉΓòÉ
  14103.  
  14104. BeepLength = nnnn (2):  Sets the default BEEP length in system clock ticks 
  14105. (approximately 1/18 of a second per tick). BeepLength is also the default 
  14106. length for "error" beeps (for example, if you press an illegal key). 
  14107.  
  14108.  
  14109. ΓòÉΓòÉΓòÉ 10.4.2.6. CDDWinLeft, CDDWinTop, CDDWinWidth, CDDWinHeight ΓòÉΓòÉΓòÉ
  14110.  
  14111. CDDWinLeft = nnnn, CDDWinTop = nnnn, CDDWinWidth = nnnn, CDDWinHeight = nnnn: 
  14112. These values set the position and size of the popup window used by extended 
  14113. directory searches, in characters, including the border.  The defaults are 3, 
  14114. 3, 72, and 16, respectively (i.e., a window beginning in column 3, row 3, 72 
  14115. columns wide and 16 rows high).  The position is relative to the top left 
  14116. corner of the screen.  The width and height values include the space required 
  14117. for the window border. 
  14118.  
  14119. The window cannot be smaller than than 10 columns wide by 5 rows high 
  14120. (including the border).  The values you enter will be adjusted if necessary to 
  14121. keep a minimum-size window visible on the screen. 
  14122.  
  14123. The window is normally displayed with a shadow, but if you specify a window 
  14124. starting at column 0 and extending to the right margin, the shadow is 
  14125. eliminated; this may be useful to prevent speech software from reading text in 
  14126. the shadow area while viewing the window. 
  14127.  
  14128.  
  14129. ΓòÉΓòÉΓòÉ 10.4.2.7. CommandSep ΓòÉΓòÉΓòÉ
  14130.  
  14131. CommandSep = c:  This is the character used to separate multiple commands on 
  14132. the same line.  The default is the ampersand [&]. You cannot use any of the 
  14133. redirection characters (| > < ) or any of the whitespace characters (space, 
  14134. tab, comma, or equal sign).  The command separator is saved by SETLOCAL and 
  14135. restored by ENDLOCAL. 
  14136.  
  14137. Also see SETDOS /C, the %+ internal variable, and Special Character 
  14138. Compatibility for information on using compatible command separators for two or 
  14139. more products. 
  14140.  
  14141.  
  14142. ΓòÉΓòÉΓòÉ 10.4.2.8. CursorIns ΓòÉΓòÉΓòÉ
  14143.  
  14144. CursorIns = nnnn (100):  This is the shape of the cursor for insert mode during 
  14145. command-line editing and all commands which accept line input (DESCRIBE, ESET, 
  14146. etc.).  The size is a percentage of the total character cell size, between 0% 
  14147. and 100%.  Because of the way video drivers map the cursor shape, you may not 
  14148. get a smooth progression in cursor shapes as CursorIns and CursorOver change. 
  14149. If CursorIns or CursorOver is set to -1, 4OS2 will not attempt to modify the 
  14150. cursor shape at all; you can use this feature to give another program full 
  14151. control of the cursor shape. 
  14152.  
  14153. Also see CursorOver and SETDOS /S. 
  14154.  
  14155.  
  14156. ΓòÉΓòÉΓòÉ 10.4.2.9. CursorOver ΓòÉΓòÉΓòÉ
  14157.  
  14158. CursorOver = nnnn (15):  This is the shape of the cursor for overtype mode 
  14159. during command-line editing and all commands which accept line input.  The size 
  14160. is a percentage of the total character cell size, between 0% and 100%.  For 
  14161. details see CursorIns; also see SETDOS /S. 
  14162.  
  14163.  
  14164. ΓòÉΓòÉΓòÉ 10.4.2.10. DecimalChar ΓòÉΓòÉΓòÉ
  14165.  
  14166.  DecimalChar = . | , | AUTO:  Sets the character used as the decimal separator 
  14167. for @EVAL, numeric IF and IFF tests, version numbers, and other similar uses. 
  14168. The only valid settings are period [.], comma [,], and Auto (the default).  A 
  14169. setting of Auto tells the command processor to use the decimal separator 
  14170. associated with your current country code.  If you change the decimal character 
  14171. you must also adjust the thousands character (with ThousandsChar) so that the 
  14172. two characters are different. 
  14173.  
  14174. Also see SETDOS /G. 
  14175.  
  14176.  
  14177. ΓòÉΓòÉΓòÉ 10.4.2.11. DescriptionMax ΓòÉΓòÉΓòÉ
  14178.  
  14179. DescriptionMax = nnnn (40):  Controls the description length limit for 
  14180. DESCRIBE.  The allowable range is 20 to 511 characters. 
  14181.  
  14182.  
  14183. ΓòÉΓòÉΓòÉ 10.4.2.12. DescriptionName ΓòÉΓòÉΓòÉ
  14184.  
  14185. DescriptionName = [File | EA]:  Sets the file name in which to store file 
  14186. descriptions.  The default file name is DESCRIPT.ION.  Use this directive with 
  14187. caution because changing the name from the default will make it difficult to 
  14188. transfer file descriptions to another system. 
  14189.  
  14190. If you set DescriptionName = EA, 4OS2 will use the ".SUBJECT" extended 
  14191. attribute (EA) for file descriptions instead of a separate file.  Note that 
  14192. using EAs will slow the DIR and SELECT commands noticeably.  On a FAT volume, 
  14193. performance may be substantially slower, depending on whether the system has 
  14194. cached the extended attributes. 
  14195.  
  14196. Also see SETDOS /D. 
  14197.  
  14198.  
  14199. ΓòÉΓòÉΓòÉ 10.4.2.13. Descriptions ΓòÉΓòÉΓòÉ
  14200.  
  14201. Descriptions = YES | No:  Turns description handling on or off during the file 
  14202. processing commands COPY, DEL, MOVE, and REN.  If set to No, 4OS2 will not 
  14203. update the description file when files are moved, copied, deleted or renamed. 
  14204.  
  14205. Also see SETDOS /D. 
  14206.  
  14207.  
  14208. ΓòÉΓòÉΓòÉ 10.4.2.14. EditMode ΓòÉΓòÉΓòÉ
  14209.  
  14210. EditMode = Insert | OVERSTRIKE:  This directive lets you start the command-line 
  14211. editor in either insert or overstrike mode.  Also see SETDOS /M. 
  14212.  
  14213.  
  14214. ΓòÉΓòÉΓòÉ 10.4.2.15. EscapeChar ΓòÉΓòÉΓòÉ
  14215.  
  14216. EscapeChar = c :  Sets the character used to suppress the normal meaning of the 
  14217. following character.  The default is a caret [^]. See Escape Character for a 
  14218. description of special escape sequences.  You cannot use any of the redirection 
  14219. characters (|, >, or < ) or the whitespace characters (space, tab, comma, or 
  14220. equal sign) as the escape character.  The escape character is saved by SETLOCAL 
  14221. and restored by ENDLOCAL. 
  14222.  
  14223. Also see SETDOS /E, the %= internal variable, and Special Character 
  14224. Compatibility for information on using compatible escape characters for two or 
  14225. more products. 
  14226.  
  14227.  
  14228. ΓòÉΓòÉΓòÉ 10.4.2.16. EvalMax ΓòÉΓòÉΓòÉ
  14229.  
  14230. EvalMax = nnnn (8):  Controls the maximum number of digits after the decimal 
  14231. point in values returned by @EVAL. This setting can be overridden with the 
  14232. construct @EVAL[expression=n.n].  The allowable range is 0 to 8.  Also see 
  14233. EvalMin and SETDOS /F. 
  14234.  
  14235.  
  14236. ΓòÉΓòÉΓòÉ 10.4.2.17. EvalMin ΓòÉΓòÉΓòÉ
  14237.  
  14238. EvalMin = nnnn (8):  Controls the minimum number of digits after the decimal 
  14239. point in values returned by @EVAL.  This setting can be overridden with the 
  14240. construct @EVAL[expression=n.n].  The allowable range is 0 to 8.  The EvalMin 
  14241. value will be ignored if it is larger than EvalMax.  Also see SETDOS /F. 
  14242.  
  14243.  
  14244. ΓòÉΓòÉΓòÉ 10.4.2.18. ExecWait ΓòÉΓòÉΓòÉ
  14245.  
  14246. ExecWait = Yes | NO:  Controls whether 4OS2 waits for an external program to 
  14247. complete before redisplaying the prompt.  See Waiting for Applications to 
  14248. Finish for details on the effects of this directive. 
  14249.  
  14250.  
  14251. ΓòÉΓòÉΓòÉ 10.4.2.19. FileCompletion ΓòÉΓòÉΓòÉ
  14252.  
  14253. FileCompletion = cmd1: ext1 ext2 ...; cmd2: ext3 ext4 ...  Sets the files made 
  14254. available during filename completion for selected commands.  The format is the 
  14255. same as that used for the FILECOMPLETION environment variable.  See Filename 
  14256. Completion for a detailed explanation of selective filename completion. 
  14257.  
  14258.  
  14259. ΓòÉΓòÉΓòÉ 10.4.2.20. FuzzyCD ΓòÉΓòÉΓòÉ
  14260.  
  14261. FuzzyCD = 0 | 1 | 2 | 3;  Enables or disables extended directory searches, and 
  14262. controls their behavior.  A setting of 0 (the default) disables extended 
  14263. searches.  For complete details on the meaning of the other settings see 
  14264. Extended Directory Searches. 
  14265.  
  14266.  
  14267. ΓòÉΓòÉΓòÉ 10.4.2.21. HistCopy ΓòÉΓòÉΓòÉ
  14268.  
  14269. HistCopy = Yes | NO:  Controls what happens when you re-execute a line from the 
  14270. command history.  If this option is set to Yes, the line is appended to the end 
  14271. of the history list.  By default, or if this option is set to No, the command 
  14272. is not copied.  The original copy of the command is retained at its original 
  14273. position in the list, regardless of the setting of HistCopy. 
  14274.  
  14275. Set this option to No if you want to use HistMove = Yes; otherwise, the 
  14276. HistCopy setting will override HistMove. 
  14277.  
  14278.  
  14279. ΓòÉΓòÉΓòÉ 10.4.2.22. HistLogName ΓòÉΓòÉΓòÉ
  14280.  
  14281. HistLogName = File:  Sets the history log file name and path.  Using 
  14282. HistLogName does not turn history logging on; you must use a LOG /H ON command 
  14283. to do so. 
  14284.  
  14285.  
  14286. ΓòÉΓòÉΓòÉ 10.4.2.23. HistMin ΓòÉΓòÉΓòÉ
  14287.  
  14288. HistMin = nnnn (0):  Sets the minimum command-line size to save in the command 
  14289. history list.  Any command line whose length is less than this value will not 
  14290. be saved.  Legal values range from 0, which saves everything, to 1024, which 
  14291. disables all command history saves. 
  14292.  
  14293.  
  14294. ΓòÉΓòÉΓòÉ 10.4.2.24. HistMove ΓòÉΓòÉΓòÉ
  14295.  
  14296. HistMove = Yes | NO:  If set to Yes, a recalled line is moved to the end of the 
  14297. command history.  The difference between this directive and HistCopy, is that 
  14298. HistCopy = Yes copies each recalled line to the end of the history but leaves 
  14299. the original in place.  HistMove = Yes places the line at the end of history 
  14300. and removes the original line. 
  14301.  
  14302. This directive has no effect if HistCopy = Yes. 
  14303.  
  14304.  
  14305. ΓòÉΓòÉΓòÉ 10.4.2.25. HistWrap ΓòÉΓòÉΓòÉ
  14306.  
  14307. HistWrap = YES | No:  Controls whether the command history recall "wraps" when 
  14308. you reach the top or bottom of the list.  The default setting enables wrapping, 
  14309. so the list appears "circular".  If HistWrap is set to No, history recall will 
  14310. stop at the beginning and end of the list rather than wrapping.  This setting 
  14311. affects history recall at the prompt only; the command history window never 
  14312. wraps. 
  14313.  
  14314.  
  14315. ΓòÉΓòÉΓòÉ 10.4.2.26. LineInput ΓòÉΓòÉΓòÉ
  14316.  
  14317. LineInput = Yes | NO:  This directive controls how 4OS2 gets its input from the 
  14318. command line.  Yes forces 4OS2 to perform line-by-line input, just as CMD.EXE 
  14319. does, instead of character-by-character input.  This will disable command-line 
  14320. editing, history recall, the directory history window, and filename completion, 
  14321. and will reduce the 4OS2 input length limit from 1023 characters to 299 
  14322. characters.  It is normally used only for applications which do not work 
  14323. properly unless 4OS2 uses line input. 
  14324.  
  14325. If you have a particular program that requires line input, you can use SETDOS 
  14326. /L to temporarily change modes. 
  14327.  
  14328.  
  14329. ΓòÉΓòÉΓòÉ 10.4.2.27. ListRowStart ΓòÉΓòÉΓòÉ
  14330.  
  14331. ListRowStart  = 1 |  0:  Specifies whether LIST and FFIND consider the first 
  14332. line in the file to be line "1" or line "0".  The default is "1". 
  14333.  
  14334.  
  14335. ΓòÉΓòÉΓòÉ 10.4.2.28. LogName ΓòÉΓòÉΓòÉ
  14336.  
  14337. LogName = File:  Sets the log file name and path.  Using LogName does not turn 
  14338. logging on; you must use a LOG ON command to do so. 
  14339.  
  14340.  
  14341. ΓòÉΓòÉΓòÉ 10.4.2.29. NoClobber ΓòÉΓòÉΓòÉ
  14342.  
  14343. NoClobber = Yes | NO:  If set to Yes, will prevent standard output redirection 
  14344. from overwriting an existing file, and will require that the output file 
  14345. already exist for append redirection.  Also see SETDOS /N. 
  14346.  
  14347.  
  14348. ΓòÉΓòÉΓòÉ 10.4.2.30. ParameterChar ΓòÉΓòÉΓòÉ
  14349.  
  14350. ParameterChar = c:  Sets the character used after a percent sign to specify all 
  14351. or all remaining command-line arguments in a batch file or alias (e.g., %$ or 
  14352. %n$; see Batch Files and ALIAS).  The default is the dollar sign [$].  The 
  14353. parameter character is saved by SETLOCAL and restored by ENDLOCAL. 
  14354.  
  14355. Also see SETDOS /P.  See Special Character Compatibility for information on 
  14356. using compatible parameter characters for two or more products. 
  14357.  
  14358.  
  14359. ΓòÉΓòÉΓòÉ 10.4.2.31. PathExt ΓòÉΓòÉΓòÉ
  14360.  
  14361. PathExt = Yes | NO:  Determines whether 4OS2 will use the PATHEXT environment 
  14362. variable.  If set to No (the default), the PATHEXT variable is ignored.  If set 
  14363. to Yes, the PATHEXT variable will be used to determine extensions to look for 
  14364. when searching the PATH for an executable file.  For details, see the PATHEXT 
  14365. variable and the PATH command. 
  14366.  
  14367. CAUTION:  If you set PathExt = Yes in 4OS2.INI and then fail to set the PATHEXT 
  14368. variable, path searches will fail as there will be no extensions for which to 
  14369. search! 
  14370.  
  14371. PATHEXT is supported for compatibility reasons but should not generally be used 
  14372. as a substitute for the more flexible executable extensions feature. 
  14373.  
  14374.  
  14375. ΓòÉΓòÉΓòÉ 10.4.2.32. PopupWinLeft, PopupWinTop, PopupWinWidth, PopupWinHeight ΓòÉΓòÉΓòÉ
  14376.  
  14377. PopupWinLeft = nnnn, PopupWinTop = nnnn, PopupWinWidth = nnnn, PopupWinHeight = 
  14378. nnnn:  These values set the position and size of the command-line, directory 
  14379. history, and filename completion windows, and most other popup windows (see 
  14380. CDDWinLeft etc. for the extended directory search window).  The values are in 
  14381. characters, and include the border.  The defaults are 40, 1, 36, and 12, 
  14382. respectively (i.e., a window beginning in column 40, row 1, 36 columns wide and 
  14383. 12 rows high).  The position is relative to the top left corner of the screen. 
  14384. The width and height values include the space required for the window border. 
  14385.  
  14386. The window cannot be smaller than than 10 columns wide by 5 rows high 
  14387. (including the border).  The values you enter will be adjusted if necessary to 
  14388. keep a minimum-size window visible on the screen. 
  14389.  
  14390. The window is normally displayed with a shadow, but if you specify a window 
  14391. starting at column 0 and extending to the right margin, the shadow is 
  14392. eliminated; this may be useful to prevent speech software from reading text in 
  14393. the shadow area while viewing the window. 
  14394.  
  14395.  
  14396. ΓòÉΓòÉΓòÉ 10.4.2.33. Printer ΓòÉΓòÉΓòÉ
  14397.  
  14398. Printer = devicename:  Sets the output device that the LIST command will print 
  14399. to.  By default, LPT1 is used. The device can be PRN, LPT1 to 3, COM1 to 4, NUL 
  14400. (which will disable printed output) or any other installed character device. 
  14401.  
  14402.  
  14403. ΓòÉΓòÉΓòÉ 10.4.2.34. ScreenRows ΓòÉΓòÉΓòÉ
  14404.  
  14405. ScreenRows = nnnn:  Sets the number of screen rows used by the video display. 
  14406. Normally the screen size is determined automatically, but if you have a 
  14407. non-standard display you may need to set it explicitly.  This value does not 
  14408. affect screen scrolling, which is controlled by OS/2 and your video driver. 
  14409.  
  14410. ScreenRows is used only by the LIST and SELECT commands, the paged output 
  14411. options of other commands (e.g., TYPE /P), and error checking in the screen 
  14412. output commands. 
  14413.  
  14414. Also see SETDOS /R. 
  14415.  
  14416.  
  14417. ΓòÉΓòÉΓòÉ 10.4.2.35. TabStops ΓòÉΓòÉΓòÉ
  14418.  
  14419. TabStops = nnnn (8):  Sets the tab stops for files displayed with the LIST 
  14420. command.  Setting TabStops=3, for example, will place a tab stop in every third 
  14421. column.  The allowable range is 1 to 32. 
  14422.  
  14423.  
  14424. ΓòÉΓòÉΓòÉ 10.4.2.36. ThousandsChar ΓòÉΓòÉΓòÉ
  14425.  
  14426. ThousandsChar = . | , | AUTO:  Sets the character used as the thousands 
  14427. separator for numeric output.  The only valid settings are period [.], comma 
  14428. [,], and Auto (the default).  A setting of Auto tells the command processor to 
  14429. use the thousands separator associated with your current country code.  If you 
  14430. change the thousands character you must also adjust the decimal character (with 
  14431. DecimalChar) so that the two characters are different. 
  14432.  
  14433. Also see SETDOS /G. 
  14434.  
  14435.  
  14436. ΓòÉΓòÉΓòÉ 10.4.2.37. UnixPaths ΓòÉΓòÉΓòÉ
  14437.  
  14438. UnixPaths = Yes | NO:  Enables the forward slash as a path separator in the 
  14439. command name (the first item on the command line).  This allows you to enter a 
  14440. command like: 
  14441.  
  14442.      [c:\] /bin/programs/foo.exe
  14443.  
  14444. without having the forward slashes interpreted as switch characters. Note that 
  14445. setting UnixPaths to Yes does not change the command processor or operating 
  14446. system switch character, it's still '/'.  It simply allows you to put forward 
  14447. slashes in the command name without problems. 
  14448.  
  14449. When UnixPaths is set to Yes command switches beginning with a forward slash 
  14450. must be preceded by a space to avoid confusion (this is a good general practice 
  14451. regardless of the setting of UnixPaths).  For example: 
  14452.  
  14453.      [c:\] \bin\foo.exe /c        OK
  14454.      [c:\] /bin/foo.exe /c        OK
  14455.      [c:\] \bin\foo.exe/c         Error
  14456.      [c:\] /bin/foo.exe/c         Error
  14457.  
  14458.  
  14459. ΓòÉΓòÉΓòÉ 10.4.2.38. UpperCase ΓòÉΓòÉΓòÉ
  14460.  
  14461. UpperCase = Yes | NO:  Yes specifies that file and directory names should be 
  14462. displayed in the traditional upper-case by internal commands like COPY and DIR. 
  14463. No allows the normal 4OS2 lower-case style. This directive does not affect the 
  14464. display of filenames on HPFS drives. 
  14465.  
  14466. Also see SETDOS /U. 
  14467.  
  14468.  
  14469. ΓòÉΓòÉΓòÉ 10.4.3. Color Directives ΓòÉΓòÉΓòÉ
  14470.  
  14471. These directives control the colors that 4OS2 use for its displays. Screen 
  14472. border colors can only be set in StdColors.  "BORder" color specifications 
  14473. included in other directives will be ignored.  For complete details on color 
  14474. names see Colors and Color Names.  The color directives are: 
  14475.  
  14476.         BrightBG                Bright background colors 
  14477.         CDDWinColors            Directory change window colors 
  14478.         ColorDir                Directory colors 
  14479.         InputColors             Input colors 
  14480.         ListboxBarColors        Light bar color in list boxes 
  14481.         ListColors              LIST display colors 
  14482.         ListStatBarColors       LIST status bar colors 
  14483.         PopupWinColors          Popup window colors 
  14484.         SelectColors            SELECT display colors 
  14485.         SelectStatBarColors     SELECT status bar colors 
  14486.         StdColors               Standard display colors 
  14487.  
  14488.  
  14489. ΓòÉΓòÉΓòÉ 10.4.3.1. BrightBG ΓòÉΓòÉΓòÉ
  14490.  
  14491. BrightBG = Yes | No.  If set to Yes, 4OS2 will enable bright background colors 
  14492. in full-screen sessions.  If set to No, bright backgrounds will be disabled, 
  14493. but blinking foreground characters will be enabled.  If BrightBG is not used, 
  14494. 4OS2 will not adjust the bright background / blinking foreground switch at all. 
  14495. Most color video boards default to a blinking foreground with bright background 
  14496. colors disabled. 
  14497.  
  14498. See also SETDOS /B. 
  14499.  
  14500. Using BrightBG requires careful attention to interactions of display type, 
  14501. mode, and color.  For a detailed explanation, see Colors and Color Names. 
  14502.  
  14503.  
  14504. ΓòÉΓòÉΓòÉ 10.4.3.2. CDDWinColors ΓòÉΓòÉΓòÉ
  14505.  
  14506. CDDWinColors = Color:  Sets the default colors for the popup window used by 
  14507. extended directory searches.  If this directive is not used, the colors will be 
  14508. reversed from the current colors on the screen. 
  14509.  
  14510.  
  14511. ΓòÉΓòÉΓòÉ 10.4.3.3. ColorDir ΓòÉΓòÉΓòÉ
  14512.  
  14513. ColorDir = ext1 ext2 ...:colora;ext3 ext4 ... :colorb; ...:  Sets the directory 
  14514. colors used by DIR and SELECT.  The format is the same as that used for the 
  14515. COLORDIR environment variable.  See the Color-Coded Directories topic under the 
  14516. DIR command for a complete description of the format of this variable. 
  14517.  
  14518.  
  14519. ΓòÉΓòÉΓòÉ 10.4.3.4. InputColors ΓòÉΓòÉΓòÉ
  14520.  
  14521. InputColors = Color:  Sets the colors used for command-line input.  This 
  14522. setting is useful for making your input stand out from the normal output. 
  14523.  
  14524.  
  14525. ΓòÉΓòÉΓòÉ 10.4.3.5. ListboxBarColors ΓòÉΓòÉΓòÉ
  14526.  
  14527. ListboxBarColors = Color:  Sets the color for the highlight bar in the popup 
  14528. list boxes (i.e., command history window, filename completion window, @SELECT 
  14529. window, etc.). 
  14530.  
  14531.  
  14532. ΓòÉΓòÉΓòÉ 10.4.3.6. ListColors ΓòÉΓòÉΓòÉ
  14533.  
  14534. ListColors = Color:  Sets the colors used by the LIST command.  If this 
  14535. directive is not used, LIST will use the current default colors set by the CLS 
  14536. or COLOR command or by the StdColors directive. 
  14537.  
  14538.  
  14539. ΓòÉΓòÉΓòÉ 10.4.3.7. ListStatBarColors ΓòÉΓòÉΓòÉ
  14540.  
  14541. ListStatBarColors = Color:  Sets the colors used on the LIST status bar.  If 
  14542. this directive is not used, LIST will set the status bar to the reverse of the 
  14543. screen color (the screen color is controlled by ListColors). 
  14544.  
  14545.  
  14546. ΓòÉΓòÉΓòÉ 10.4.3.8. PopupWinColors ΓòÉΓòÉΓòÉ
  14547.  
  14548. PopupWinColors = Color:  Sets the default colors for the command-line, 
  14549. directory history, and filename completion windows, and most other popup 
  14550. windows (see CDDWinColors for the extended directory search window).  If this 
  14551. directive is not used, the colors will be reversed from the current colors on 
  14552. the screen. 
  14553.  
  14554.  
  14555. ΓòÉΓòÉΓòÉ 10.4.3.9. SelectColors ΓòÉΓòÉΓòÉ
  14556.  
  14557. SelectColors = Color:  Sets the color used by the SELECT command.  If this 
  14558. directive is not used, SELECT will use the current default colors set by the 
  14559. CLS or COLOR command or by the StdColors directive. 
  14560.  
  14561.  
  14562. ΓòÉΓòÉΓòÉ 10.4.3.10. SelectStatBarColors ΓòÉΓòÉΓòÉ
  14563.  
  14564. SelectStatBarColors = Color:  Sets the color used on the SELECT status bar.  If 
  14565. this directive is not used, SELECT will set the status bar to the reverse of 
  14566. the screen color (the screen color is controlled by SelectColors). 
  14567.  
  14568.  
  14569. ΓòÉΓòÉΓòÉ 10.4.3.11. StdColors ΓòÉΓòÉΓòÉ
  14570.  
  14571. StdColors = Color:  Sets the standard colors to be used when CLS is used 
  14572. without a color specification, and for LIST and SELECT if ListColors and 
  14573. SelectColors are not used.  Using this directive is similar to placing a COLOR 
  14574. command in 4START. 
  14575.  
  14576. StdColors takes effect the first time CLS, LIST, or SELECT is used after 4OS2 
  14577. starts, but will not affect the color of error or other messages displayed 
  14578. during the loading and initialization process. 
  14579.  
  14580.  
  14581. ΓòÉΓòÉΓòÉ 10.4.4. Key Mapping Directives ΓòÉΓòÉΓòÉ
  14582.  
  14583. These directives allow you to change the keys used for command-line editing and 
  14584. other internal functions.  They are divided into four types, depending on the 
  14585. context in which the keys are used.  For a discussion and list of directives 
  14586. for each type see: 
  14587.  
  14588.             General Input Keys 
  14589.             Command-Line Editing Keys 
  14590.             Popup Window Keys 
  14591.             LIST Keys 
  14592.  
  14593.  Using a key mapping directive allows you to assign a different or additional 
  14594.  key to perform the function described.  For example, to use function key F3 to 
  14595.  invoke the HELP facility (normally invoked with F1): 
  14596.  
  14597.           Help = F3
  14598.  
  14599.  Any directive can be used multiple times to assign multiple keys to the same 
  14600.  function.  For example: 
  14601.  
  14602.           ListFind = F            ;F does a find in LIST
  14603.           ListFind = F5           ;F5 also does a find in LIST
  14604.  
  14605.  Use some care when you reassign keystrokes.  If you assign a default key to a 
  14606.  different function, it will no longer be available for its original use.  For 
  14607.  example, if you assign F1 to the AddFile directive (a part of filename 
  14608.  completion), the F1 key will no longer invoke the help system, so you will 
  14609.  probably want to assign a different key to Help. 
  14610.  
  14611.  See Keys and Key Names before using the key mapping directives. 
  14612.  
  14613.  Key assignments are processed before looking for keystroke aliases.  For 
  14614.  example, if you assign Shift-F1 to HELP and also assign Shift-F1 to a key 
  14615.  alias, the key alias will be ignored. 
  14616.  
  14617.  Assigning a new keystroke for a function does not deassign the default 
  14618.  keystroke for the same function.  If you want to deassign one of the default 
  14619.  keys, use the NormalKey directive described below or the corresponding 
  14620.  directive for keys in the other key groups (NormalEditKey, NormalPopupKey, or 
  14621.  NormalListKey). 
  14622.  
  14623.  
  14624. ΓòÉΓòÉΓòÉ 10.4.4.1. General Input Keys ΓòÉΓòÉΓòÉ
  14625.  
  14626. These directives apply to all input.  They are in effect whenever 4OS2 requests 
  14627. input from the keyboard, including during command-line editing and the 
  14628. DESCRIBE, ESET, INPUT, LIST, and SELECT commands.  The general input keys are: 
  14629.  
  14630.         Backspace           Deletes the character to the left of the cursor 
  14631.         BeginLine           Moves the cursor to the start of the line 
  14632.         Del                 Deletes the character at the cursor 
  14633.         DelToBeginning      Deletes from the cursor to the start of the line 
  14634.         DelToEnd            Deletes from the cursor to the end of the line 
  14635.         DelWordLeft         Deletes the word to the left of the cursor 
  14636.         DelWordRight        Deletes the word to the right of the cursor 
  14637.         Down                * Moves the cursor or scrolls the display down 
  14638.         EndLine             Moves the cursor to the end of the line 
  14639.         EraseLine           Deletes the entire line 
  14640.         ExecLine            Executes or accepts a line 
  14641.         Ins                 Toggles insert / overstrike mode 
  14642.         Left                * Moves the cursor or scrolls the display left 
  14643.         NormalKey           * Deassigns a key 
  14644.         Right               * Moves the cursor or scrolls the display right 
  14645.         Up                  * Moves the cursor or scrolls the display up 
  14646.         WordLeft            Moves the cursor left one word 
  14647.         WordRight           Moves the cursor right one word 
  14648.  
  14649.  
  14650. ΓòÉΓòÉΓòÉ 10.4.4.1.1. Backspace ΓòÉΓòÉΓòÉ
  14651.  
  14652. Backspace = Key (Bksp):  Deletes the character to the left of the cursor. 
  14653.  
  14654.  
  14655. ΓòÉΓòÉΓòÉ 10.4.4.1.2. BeginLine ΓòÉΓòÉΓòÉ
  14656.  
  14657. BeginLine = Key (Home):  Moves the cursor to the beginning of the line. 
  14658.  
  14659.  
  14660. ΓòÉΓòÉΓòÉ 10.4.4.1.3. Del ΓòÉΓòÉΓòÉ
  14661.  
  14662. Del = Key (Del):  Deletes the character at the cursor. 
  14663.  
  14664.  
  14665. ΓòÉΓòÉΓòÉ 10.4.4.1.4. DelToBeginning ΓòÉΓòÉΓòÉ
  14666.  
  14667. DelToBeginning = Key (Ctrl-Home):  Deletes from the cursor to the start of the 
  14668. line. 
  14669.  
  14670.  
  14671. ΓòÉΓòÉΓòÉ 10.4.4.1.5. DelToEnd ΓòÉΓòÉΓòÉ
  14672.  
  14673. DelToEnd = Key (Ctrl-End):  Deletes from the cursor to the end of the line. 
  14674.  
  14675.  
  14676. ΓòÉΓòÉΓòÉ 10.4.4.1.6. DelWordLeft ΓòÉΓòÉΓòÉ
  14677.  
  14678. DelWordLeft = Key (Ctrl-L):  Deletes the word to the left of the cursor. 
  14679.  
  14680.  
  14681. ΓòÉΓòÉΓòÉ 10.4.4.1.7. DelWordRight ΓòÉΓòÉΓòÉ
  14682.  
  14683. DelWordRight = Key (Ctrl-R, Ctrl-Bksp):  Deletes the word to the right of the 
  14684. cursor.  See ClearKeyMap if you need to remove the default mapping of Ctrl-Bksp 
  14685. to this function. 
  14686.  
  14687.  
  14688. ΓòÉΓòÉΓòÉ 10.4.4.1.8. Down ΓòÉΓòÉΓòÉ
  14689.  
  14690. Down = Key (Down):  Scrolls the display down one line in LIST; moves the cursor 
  14691. down one line in SELECT and in the command-line history, directory history, or 
  14692. %@SELECT window.  (Scrolling down through the command history at the prompt is 
  14693. controlled by NextHistory, not by this directive.) 
  14694.  
  14695.  
  14696. ΓòÉΓòÉΓòÉ 10.4.4.1.9. EndLine ΓòÉΓòÉΓòÉ
  14697.  
  14698. EndLine = Key (End):  Moves the cursor to the end of the line. 
  14699.  
  14700.  
  14701. ΓòÉΓòÉΓòÉ 10.4.4.1.10. EraseLine ΓòÉΓòÉΓòÉ
  14702.  
  14703. EraseLine = Key (Esc):  Deletes the entire line. 
  14704.  
  14705.  
  14706. ΓòÉΓòÉΓòÉ 10.4.4.1.11. ExecLine ΓòÉΓòÉΓòÉ
  14707.  
  14708. ExecLine = Key (Enter):  Executes or accepts a line. 
  14709.  
  14710.  
  14711. ΓòÉΓòÉΓòÉ 10.4.4.1.12. Ins ΓòÉΓòÉΓòÉ
  14712.  
  14713. Ins = Key (Ins):  Toggles insert / overstrike mode during line editing. 
  14714.  
  14715.  
  14716. ΓòÉΓòÉΓòÉ 10.4.4.1.13. Left ΓòÉΓòÉΓòÉ
  14717.  
  14718. Left = Key (Left):  Moves the cursor left one character on the input line; 
  14719. scrolls the display left 8 columns in LIST; scrolls the display left 4 columns 
  14720. in the command-line, directory history, or %@SELECT window. 
  14721.  
  14722.  
  14723. ΓòÉΓòÉΓòÉ 10.4.4.1.14. NormalKey ΓòÉΓòÉΓòÉ
  14724.  
  14725. NormalKey = Key:  Deassigns a general input key in order to disable the usual 
  14726. meaning of the key within 4OS2 and/or make it available for keystroke aliases. 
  14727. This will make the keystroke operate as a "normal" key with no special 
  14728. function.  For example: 
  14729.  
  14730.         NormalKey = Ctrl-End
  14731.  
  14732. will disable Ctrl-End, which is the standard "delete to end of line" key. 
  14733. Ctrl-End could then be assigned to a keystroke alias. Another key could be 
  14734. assigned the "delete to end of line" function with the DelToEnd directive. 
  14735.  
  14736.  
  14737. ΓòÉΓòÉΓòÉ 10.4.4.1.15. Right ΓòÉΓòÉΓòÉ
  14738.  
  14739. Right = Key (Right):  Moves the cursor right one character on the input line; 
  14740. scrolls the display right 8 columns in LIST; scrolls the display right 4 
  14741. columns in the command-line history, directory history, or %@SELECT window. 
  14742.  
  14743.  
  14744. ΓòÉΓòÉΓòÉ 10.4.4.1.16. Up ΓòÉΓòÉΓòÉ
  14745.  
  14746. Up = Key (Up):  Scrolls the display up one line in LIST; moves the cursor up 
  14747. one line in SELECT and in the command-line history, directory history, or 
  14748. %@SELECT window.  (Scrolling up through the command history at the prompt is 
  14749. controlled by PrevHistory, not by this directive.) 
  14750.  
  14751.  
  14752. ΓòÉΓòÉΓòÉ 10.4.4.1.17. WordLeft ΓòÉΓòÉΓòÉ
  14753.  
  14754. WordLeft = Key (Ctrl-Left):  Moves the cursor left one word; scrolls the 
  14755. display left 40 columns in LIST. 
  14756.  
  14757.  
  14758. ΓòÉΓòÉΓòÉ 10.4.4.1.18. WordRight ΓòÉΓòÉΓòÉ
  14759.  
  14760. WordRight = Key (Ctrl-Right):  Moves the cursor right one word; scrolls the 
  14761. display right 40 columns in LIST. 
  14762.  
  14763.  
  14764. ΓòÉΓòÉΓòÉ 10.4.4.2. Command-Line Editing Keys ΓòÉΓòÉΓòÉ
  14765.  
  14766. These directives apply only to command-line editing.  They are only effective 
  14767. at the 4OS2 prompt.  The command-line editing keys are: 
  14768.  
  14769.         AddFile             Keeps filename completion entry and adds another 
  14770.         AliasExpand         Expands aliases without executing them 
  14771.         CommandEscape       Allows direct entry of a keystroke 
  14772.         DelHistory          Deletes a history list entry 
  14773.         EndHistory          Displays the last entry in the history list 
  14774.         Help                Invokes this help system 
  14775.         LineToEnd           Copies the current line to the end of the history 
  14776.         NextFile            Gets the next matching filename 
  14777.         NextHistory         Recalls the next command from the history 
  14778.         NormalEditKey       Deassigns a command-line editing key 
  14779.         PopFile             Opens the filename completion window 
  14780.         PrevFile            Gets the previous matching filename 
  14781.         PrevHistory         Recalls the previous command from the history 
  14782.         SaveHistory         Saves the command line without executing it 
  14783.  
  14784.  
  14785. ΓòÉΓòÉΓòÉ 10.4.4.2.1. AddFile ΓòÉΓòÉΓòÉ
  14786.  
  14787. AddFile = Key (F10):  Keeps the current filename completion entry and inserts 
  14788. the next matching name. 
  14789.  
  14790.  
  14791. ΓòÉΓòÉΓòÉ 10.4.4.2.2. AliasExpand ΓòÉΓòÉΓòÉ
  14792.  
  14793. AliasExpand = Key (Ctrl-F):  Expands all aliases in the current command line 
  14794. without executing them. 
  14795.  
  14796.  
  14797. ΓòÉΓòÉΓòÉ 10.4.4.2.3. CommandEscape ΓòÉΓòÉΓòÉ
  14798.  
  14799. CommandEscape = Key (Alt-255):  Allows direct entry of a keystroke that would 
  14800. normally be handled by the command line editor (e.g. Tab or Ctrl-D). 
  14801.  
  14802.  
  14803. ΓòÉΓòÉΓòÉ 10.4.4.2.4. DelHistory ΓòÉΓòÉΓòÉ
  14804.  
  14805. DelHistory = Key (Ctrl-D):  Deletes the displayed history list entry and 
  14806. displays the previous entry. 
  14807.  
  14808.  
  14809. ΓòÉΓòÉΓòÉ 10.4.4.2.5. EndHistory ΓòÉΓòÉΓòÉ
  14810.  
  14811. EndHistory = Key (Ctrl-E):  Displays the last entry in the history list. 
  14812.  
  14813.  
  14814. ΓòÉΓòÉΓòÉ 10.4.4.2.6. Help ΓòÉΓòÉΓòÉ
  14815.  
  14816. Help = Key (F1):  Invokes the HELP facility. 
  14817.  
  14818.  
  14819. ΓòÉΓòÉΓòÉ 10.4.4.2.7. LineToEnd ΓòÉΓòÉΓòÉ
  14820.  
  14821. LineToEnd = Key (Ctrl-Enter):  Copies the current command line to the end of 
  14822. the history list, then executes it. 
  14823.  
  14824.  
  14825. ΓòÉΓòÉΓòÉ 10.4.4.2.8. NextFile ΓòÉΓòÉΓòÉ
  14826.  
  14827. NextFile = Key (F9, Tab):  Gets the next matching filename. See ClearKeyMap if 
  14828. you need to remove the default mapping of Tab to this function. 
  14829.  
  14830.  
  14831. ΓòÉΓòÉΓòÉ 10.4.4.2.9. NextHistory ΓòÉΓòÉΓòÉ
  14832.  
  14833. NextHistory = Key (Down):  Recalls the next command from the command history. 
  14834.  
  14835.  
  14836. ΓòÉΓòÉΓòÉ 10.4.4.2.10. NormalEditKey ΓòÉΓòÉΓòÉ
  14837.  
  14838. NormalEditKey = Key:  Deassigns a command-line editing key in order to disable 
  14839. the usual meaning of the key while editing a command line, and/or make it 
  14840. available for keystroke aliases.  For additional details see NormalKey. 
  14841.  
  14842.  
  14843. ΓòÉΓòÉΓòÉ 10.4.4.2.11. PopFile ΓòÉΓòÉΓòÉ
  14844.  
  14845. PopFile = Key (F7, Ctrl-Tab):  Opens the filename completion window.  You may 
  14846. not be able to use Ctrl-Tab, because not all systems recognize it as a 
  14847. keystroke.  See ClearKeyMap if you need to remove the default mapping of 
  14848. Ctrl-Tab to this function. 
  14849.  
  14850.  
  14851. ΓòÉΓòÉΓòÉ 10.4.4.2.12. PrevFile ΓòÉΓòÉΓòÉ
  14852.  
  14853. PrevFile = Key (F8, Shift-Tab):  Gets the previous matching filename.  See 
  14854. ClearKeyMap if you need to remove the default mapping of Shift-Tab to this 
  14855. function. 
  14856.  
  14857.  
  14858. ΓòÉΓòÉΓòÉ 10.4.4.2.13. PrevHistory ΓòÉΓòÉΓòÉ
  14859.  
  14860. PrevHistory = Key (Up):  Recalls the previous command from the command history. 
  14861.  
  14862.  
  14863. ΓòÉΓòÉΓòÉ 10.4.4.2.14. SaveHistory ΓòÉΓòÉΓòÉ
  14864.  
  14865. SaveHistory = Key (Ctrl-K):  Saves the command line in the command history list 
  14866. without executing it. 
  14867.  
  14868.  
  14869. ΓòÉΓòÉΓòÉ 10.4.4.3. Popup Window Keys ΓòÉΓòÉΓòÉ
  14870.  
  14871. These directives apply to popup windows, including the command history window, 
  14872. the directory history window, the filename completion window, the extended 
  14873. directory search window, and the %@SELECT window.  The popup window keys are: 
  14874.  
  14875.         DirWinOpen          Opens the directory history window 
  14876.         HistWinOpen         Opens the command history window 
  14877.         NormalPopupKey      Deassigns a popup window key 
  14878.         PopupWinBegin       Moves to the first line of the popup window 
  14879.         PopupWinDel         Deletes a line from within the popup window 
  14880.         PopupWinEdit        Moves a line from the popup window to the prompt 
  14881.         PopupWinEnd         Moves to the last line of the popup window 
  14882.         PopupWinExec        Executes the selected line in the popup window 
  14883.  
  14884.  
  14885. ΓòÉΓòÉΓòÉ 10.4.4.3.1. ┬áDirWinOpen ΓòÉΓòÉΓòÉ
  14886.  
  14887. DirWinOpen = Key (Ctrl-PgUp):  Opens the directory history window while at the 
  14888. command line. 
  14889.  
  14890.  
  14891. ΓòÉΓòÉΓòÉ 10.4.4.3.2. HistWinOpen ΓòÉΓòÉΓòÉ
  14892.  
  14893. HistWinOpen = Key (PgUp):  Brings up the history window while at the command 
  14894. line. 
  14895.  
  14896.  
  14897. ΓòÉΓòÉΓòÉ 10.4.4.3.3. NormalPopupKey ΓòÉΓòÉΓòÉ
  14898.  
  14899. NormalPopupKey = Key:  Deassigns a popup window key in order to disable the 
  14900. usual meaning of the key within the popup window. 
  14901.  
  14902. For additional details see NormalKey. 
  14903.  
  14904.  
  14905. ΓòÉΓòÉΓòÉ 10.4.4.3.4. PopupWinBegin ΓòÉΓòÉΓòÉ
  14906.  
  14907. PopupWinBegin = Key (Ctrl-PgUp):  Moves to the first item in the list when in 
  14908. the popup window 
  14909.  
  14910.  
  14911. ΓòÉΓòÉΓòÉ 10.4.4.3.5. PopupWinDel ΓòÉΓòÉΓòÉ
  14912.  
  14913. PopupWinDel = Key (Ctrl-D):  Deletes a line from within the command history or 
  14914. directory history window. 
  14915.  
  14916.  
  14917. ΓòÉΓòÉΓòÉ 10.4.4.3.6. PopupWinEdit ΓòÉΓòÉΓòÉ
  14918.  
  14919. PopupWinEdit = Key (Ctrl-Enter):  Moves a line from the command history or 
  14920. directory history window to the prompt for editing. 
  14921.  
  14922.  
  14923. ΓòÉΓòÉΓòÉ 10.4.4.3.7. PopupWinEnd ΓòÉΓòÉΓòÉ
  14924.  
  14925. PopupWinEnd = Key (Ctrl-PgDn):  Moves to the last item when in the popup 
  14926. window. 
  14927.  
  14928.  
  14929. ΓòÉΓòÉΓòÉ 10.4.4.3.8. PopupWinExec ΓòÉΓòÉΓòÉ
  14930.  
  14931. PopupWinExec = Key (Enter):  Selects the current item and closes the window. 
  14932.  
  14933.  
  14934. ΓòÉΓòÉΓòÉ 10.4.4.4. LIST Keys ΓòÉΓòÉΓòÉ
  14935.  
  14936. These directives are effective only inside the LIST command.  The LIST keys 
  14937. are: 
  14938.  
  14939.         ListExit            Exits the current file. 
  14940.         ListFind            Prompts and searches for a string 
  14941.         ListFindReverse     Prompts and searches backward for a string 
  14942.         ListHex             Toggles hexadecimal display mode 
  14943.         ListHighBit         Toggles LIST's "strip high bit" option 
  14944.         ListInfo            Displays information about the current file 
  14945.         ListNext            Finds the next matching string 
  14946.         ListPrevious        Finds the previous matching string 
  14947.         ListPrint           Prints the file on LPT1 
  14948.         ListWrap            Toggles LIST's wrap option 
  14949.         NormalListKey       Deassigns a LIST key 
  14950.  
  14951.  
  14952. ΓòÉΓòÉΓòÉ 10.4.4.4.1. ListExit ΓòÉΓòÉΓòÉ
  14953.  
  14954. ListExit = Key (Esc):  Exits from the LIST command. 
  14955.  
  14956.  
  14957. ΓòÉΓòÉΓòÉ 10.4.4.4.2. ListFind ΓòÉΓòÉΓòÉ
  14958.  
  14959. ListFind = Key (F):  Prompts and searches for a string. 
  14960.  
  14961.  
  14962. ΓòÉΓòÉΓòÉ 10.4.4.4.3. ListFindReverse ΓòÉΓòÉΓòÉ
  14963.  
  14964. ListFindReverse = Key (Ctrl-F):  Prompts and searches backward for a string. 
  14965.  
  14966.  
  14967. ΓòÉΓòÉΓòÉ 10.4.4.4.4. ListHex ΓòÉΓòÉΓòÉ
  14968.  
  14969. ListHex = Key (X):  Toggles hexadecimal display mode. 
  14970.  
  14971.  
  14972. ΓòÉΓòÉΓòÉ 10.4.4.4.5. ListHighBit ΓòÉΓòÉΓòÉ
  14973.  
  14974. ListHighBit = Key (H):  Toggles LIST's "strip high bit" option, which can aid 
  14975. in displaying files from certain word processors. 
  14976.  
  14977.  
  14978. ΓòÉΓòÉΓòÉ 10.4.4.4.6. ListInfo ΓòÉΓòÉΓòÉ
  14979.  
  14980. ListInfo = Key (I):  Displays information about the current file. 
  14981.  
  14982.  
  14983. ΓòÉΓòÉΓòÉ 10.4.4.4.7. ListNext ΓòÉΓòÉΓòÉ
  14984.  
  14985. ListNext = Key (N):  Finds the next matching string. 
  14986.  
  14987.  
  14988. ΓòÉΓòÉΓòÉ 10.4.4.4.8. ListPrevious ΓòÉΓòÉΓòÉ
  14989.  
  14990. ListPrevious = Key (Ctrl-N):  Finds the previous matching string. 
  14991.  
  14992.  
  14993. ΓòÉΓòÉΓòÉ 10.4.4.4.9. ListPrint ΓòÉΓòÉΓòÉ
  14994.  
  14995. ListPrint = Key (P):  Prints the file on LPT1. 
  14996.  
  14997.  
  14998. ΓòÉΓòÉΓòÉ 10.4.4.4.10. ListWrap ΓòÉΓòÉΓòÉ
  14999.  
  15000. ListWrap = Key (W):  Toggles LIST's wrap option on and off. The wrap option 
  15001. wraps text at the right margin. 
  15002.  
  15003.  
  15004. ΓòÉΓòÉΓòÉ 10.4.4.4.11. NormalListKey ΓòÉΓòÉΓòÉ
  15005.  
  15006. NormalListKey = Key:  Deassigns a LIST key in order to disable the usual 
  15007. meaning of the key within LIST.  For additional details see NormalKey. 
  15008.  
  15009.  
  15010. ΓòÉΓòÉΓòÉ 10.4.5. Advanced Directives ΓòÉΓòÉΓòÉ
  15011.  
  15012. These directives are generally used for unusual circumstances, or for 
  15013. diagnosing problems.  Most often they are not needed in normal use.  The 
  15014. advanced directives are: 
  15015.  
  15016.         ClearKeyMap         Clear default key mappings 
  15017.         Debug               Set debugging options 
  15018.         Include             Include a file containing .INI directives 
  15019.         NextINIFile         Set secondary shell .INI file name 
  15020.  
  15021.  
  15022. ΓòÉΓòÉΓòÉ 10.4.5.1. ClearKeyMap ΓòÉΓòÉΓòÉ
  15023.  
  15024. ClearKeyMap:  Clears all current key mappings. ClearKeyMap is a special 
  15025. directive which has no value or "=" after it.  Use ClearKeyMap to make one of 
  15026. the keys in the default map (Tab, Shift-Tab, Ctrl-Tab, or Ctrl-Bksp) available 
  15027. for a keystroke alias, or in the [Secondary] section of the .INI file to clear 
  15028. key mappings inherited from the primary shell.  ClearKeyMap should appear 
  15029. before any key mapping directives.  If you want to clear some but not all of 
  15030. the default mappings, use ClearKeyMap, then recreate the mappings you want to 
  15031. retain (e.g., with "NextFile=Tab", etc.). 
  15032.  
  15033. If you set DescriptionName = EA, 4OS2 will use the ".SUBJECT" extended 
  15034. attribute (EA) for file descriptions instead of a separate file.  Note that 
  15035. using EAs will slow the DIR and SELECT commands noticeably.  On a FAT volume, 
  15036. performance may be 10% to 200% slower, depending on whether the system has 
  15037. cached the extended attributes. 
  15038.  
  15039.  
  15040. ΓòÉΓòÉΓòÉ 10.4.5.2. Debug ΓòÉΓòÉΓòÉ
  15041.  
  15042. Debug = nnnn (0):  Controls certain debugging options which can assist you in 
  15043. tracking down unusual problems.  Use the following values for Debug; to select 
  15044. more than one option, add the values together: 
  15045.  
  15046.     1   During the startup process, display the complete command tail passed to 
  15047.         4OS2, then wait for a keystroke. 
  15048.  
  15049.     2   Include the product name with each error message displayed by 4OS2. 
  15050.         This may be useful if you are unsure of the origin of a particular 
  15051.         error message. 
  15052.  
  15053.  Also see the batch file debugger, a separate and unrelated facility for 
  15054.  stepping through batch files. 
  15055.  
  15056.  
  15057. ΓòÉΓòÉΓòÉ 10.4.5.3. Include ΓòÉΓòÉΓòÉ
  15058.  
  15059. Include = File:  Include the text from the named file at this point in the 
  15060. processing of the current .INI file.  Use this option to share a file of 
  15061. directives between several products.  The text in the named file is processed 
  15062. just as if it were part of the original .INI file.  When the include file is 
  15063. finished, processing resumes at the point where it left off in the original 
  15064. file.  The included file may contain any valid directive for the current 
  15065. section, but may not contain a section name.  Includes may be nested up to 
  15066. three levels deep (counting the original file as level 1). 
  15067.  
  15068. You must maintain include files manually -- the OPTION command modifies the 
  15069. original .INI file only, and does not update included files. 
  15070.  
  15071.  
  15072. ΓòÉΓòÉΓòÉ 10.4.5.4. NextINIFile ΓòÉΓòÉΓòÉ
  15073.  
  15074. NextINIFile = File.  The full path and name of the file must be specified.  All 
  15075. subsequent shells will read the specified .INI file, and ignore any [Secondary] 
  15076. section in the original .INI file. 
  15077.  
  15078.  
  15079. ΓòÉΓòÉΓòÉ 10.5. .INI File Examples ΓòÉΓòÉΓòÉ
  15080.  
  15081. This example configures certain special characters to match 4DOS, and changes 
  15082. other default settings to suit the user's preferences.  Note that the comments 
  15083. for the HelpBook and ColorDir directives are on separate lines before the 
  15084. directives themselves, as no comments are allowed in string directives: 
  15085.  
  15086.         [4OS2]
  15087.         InstallPath = c:\4OS2300      ;installation directory
  15088.         PauseOnError = No             ;don't stop on INI errors
  15089.         CommandSep = ^                ;4DOS command separator
  15090.         ParameterChar = &             ;4DOS parameter character
  15091.         BatchEcho = No                ;default to ECHO OFF
  15092.                                       ;show only 4OS2 help for F1 / HELP
  15093.         HelpBook = 4OS2
  15094.         History = 2048                ;expand history to 2K bytes
  15095.         BeepFreq = 880                ;make beep higher pitch
  15096.         EditMode = Insert             ;insert mode for cmd edit
  15097.         CursorOver = 100              ;overstrike cursor 100%
  15098.         CursorIns = 10                ;insert cursor 10%
  15099.         ListFind = F5                 ;F5 does a find in LIST
  15100.         ListNext = F6                 ;and F6 does a find next
  15101.         StdColors = bri cya on blu    ;default colors
  15102.         ListColors = bri whi on blu   ;colors for LIST
  15103.         SelectColors = bri whi on blu ;same colors for SELECT
  15104.                                       ;set directory display colors
  15105.         colordir = DIRS:bri yel;com exe bat btm cmd:bri whi
  15106.  
  15107.  
  15108. ΓòÉΓòÉΓòÉ 11. ┬áSetup and Troubleshooting ΓòÉΓòÉΓòÉ
  15109.  
  15110.             Starting 4OS2 
  15111.             The 4OS2 Help System 
  15112.             Error Messages 
  15113.             Troubleshooting, Service, and Support 
  15114.  
  15115.  
  15116. ΓòÉΓòÉΓòÉ 11.1. Starting 4OS2 ΓòÉΓòÉΓòÉ
  15117.  
  15118. Each 4OS2 object on your OS/2 desktop represents a different 4OS2 session.  You 
  15119. can configure any of these sessions to run in windowed or full-screen mode, and 
  15120. you can set any necessary command line parameters for 4OS2, by adjusting the 
  15121. properties of the desktop objects. 
  15122.  
  15123. To adjust the properties of an object you need to be familiar with how object 
  15124. properties are set in your version of OS/2.  For details see your OS/2 
  15125. documentation, or the 4OS2 Introduction and Installation Guide. 
  15126.  
  15127. When you configure a 4OS2 object, place an asterisk [*] in the Program Name 
  15128. field, and put any startup options that you want passed to 4OS2 (e.g., 
  15129. @inifile) in the Parameters field.  For example: 
  15130.  
  15131.      Path and file name:  *
  15132.      Parameters:          @D:\START\4OS2.INI
  15133.      Working directory:   C:\
  15134.  
  15135. (If 4OS2 is not set up as your default OS/2 shell in CONFIG.SYS, use the full 
  15136. path and name for 4OS2.EXE as the program name, rather than the asterisk.) 
  15137.  
  15138. To run a startup batch file for a particular 4OS2 session, include its name 
  15139. (with a path, if the batch file is not in the session's startup directory) as 
  15140. the last item in the Parameters field when you configure the desktop object. 
  15141. That batch file will be executed after any 4START file, but before the first 
  15142. prompt is displayed.  You can use the batch file to set environment variables 
  15143. and execute any other 4OS2 commands. 
  15144.  
  15145. You can also execute any internal 4OS2 command, external command, or alias by 
  15146. placing its name in the Parameters field.  For example: 
  15147.  
  15148.      Path and file name:  *
  15149.      Parameters:          D:\STARTOS2.CMD
  15150.      Working directory:   C:\
  15151.  
  15152. To execute an internal or external command, an alias, or a batch file and then 
  15153. exit (return to the desktop) when it is done, place /C command (rather than 
  15154. just command) as the last item in the Parameters field.  For example: 
  15155.  
  15156.      Path and file name:  *
  15157.      Parameters:          /C COMFILES.BTM
  15158.      Working directory:   C:\
  15159.  
  15160. The 4OS2 command line does not need to contain any information.  When invoked 
  15161. with an empty command line, 4OS2 will configure itself from the 4OS2.INI file, 
  15162. run 4START, and then display a prompt and wait for you to type a command. 
  15163. However, you may add options on the 4OS2 command line to change the way 4OS2 
  15164. operates. 
  15165.  
  15166. 4OS2 recognizes several optional fields on the command line. All of the options 
  15167. go on one line.  If you use more than one of these fields, their order is 
  15168. important.  The syntax for the command line is: 
  15169.  
  15170.         [d:\path] [@d:\path\inifile] [//iniline]... [/L] [/LA] [/LD] [/LH] [/S] 
  15171.         [/C | /K] [command] 
  15172.  
  15173.  The options are: 
  15174.  
  15175.         d:\path:  4OS2 will use this directory and path to set the COMSPEC 
  15176.         environment variable for this session.  If this option is not used, 
  15177.         COMSPEC is set from the location of 4OS2.EXE.  4OS2 always knows what 
  15178.         drive and directory it was started from and can set COMSPEC 
  15179.         accordingly.  It is included only for compatibility with CMD.EXE.  This 
  15180.         option cannot be used for secondary shells. 
  15181.  
  15182.         @d:\path\inifile:  This option sets the path and name of the 4OS2.INI 
  15183.         file.  You do not need this option if you aren't using a 4OS2.INI file, 
  15184.         or if the file is named 4OS2.INI and is stored in the same subdirectory 
  15185.         as 4OS2.EXE or in the root directory of the boot drive.  This option is 
  15186.         most useful if you want to start a 4OS2 session with a specific and 
  15187.         unique .INI file. 
  15188.  
  15189.         //iniline:  This option tells 4OS2 to treat the text appearing between 
  15190.         the // and the next space or tab as a 4OS2.INI directive.  The 
  15191.         directive should be in the same format as a line in 4OS2.INI, but it 
  15192.         may not contain spaces, tabs, or comments.  This option overrides any 
  15193.         corresponding directive in your 4OS2.INI file.  It is a convenient way 
  15194.         to send 4OS2 one or two simple directives without modifying or creating 
  15195.         a new 4OS2.INI file. 
  15196.  
  15197.         /L, /LA, /LD, and /LH:  These options force 4OS2 to to use a local 
  15198.         alias, directory history, and / or command history list.  They can be 
  15199.         used to override any LocalAliases=No, LocalDirHistory=No, or 
  15200.         LocalHistory=No settings in 4OS2.INI.  This allows you to use global 
  15201.         lists as the default, but start a specific 4OS2 session with local 
  15202.         lists.  /LA forces local aliases, /LD forces local directory history, 
  15203.         /LH forces local history, and /L forces all three. 
  15204.  
  15205.         See Command History for details on local and global history, Directory 
  15206.         History Window for details on local and global directory history, and 
  15207.         ALIAS for details on local and global aliases. 
  15208.  
  15209.         /S:  This option tells 4OS2 that you do not want it to set up a Ctrl-C 
  15210.         / Ctrl-Break handler.  It is included for compatibility with CMD.EXE, 
  15211.         but it may cause the system to operate incorrectly if you use this 
  15212.         option without other software to handle Ctrl-C and Ctrl-Break. 
  15213.  
  15214.         [/C | /K] command:  This option tells 4OS2 to run a command when it 
  15215.         starts.  The command will be run after 4START has been executed and 
  15216.         before any command prompt is displayed.  It can be any valid internal 
  15217.         or external command, batch file, or alias; you may include multiple 
  15218.         commands by using the command separator.  All other startup options 
  15219.         must be placed before the command, because 4OS2 will treat characters 
  15220.         after the command as part of the command and not as additional startup 
  15221.         options. 
  15222.  
  15223.         When the command is preceded by a /C, 4OS2 will execute the command and 
  15224.         then exit and return to the parent program or the OS/2 desktop without 
  15225.         displaying a prompt. 
  15226.  
  15227.         The /K switch has no effect; using it is the same as placing the 
  15228.         command (without a /C or /K) at the end of the startup command line. 
  15229.         It is included only for compatibility with CMD.EXE. 
  15230.  
  15231.  
  15232. ΓòÉΓòÉΓòÉ 11.2. The 4OS2 Help System ΓòÉΓòÉΓòÉ
  15233.  
  15234. This online help system for 4OS2 covers all 4OS2 features and internal 
  15235. commands.  It includes reference information to assist you in using 4OS2 and 
  15236. developing batch files; however it does not include all of the details which 
  15237. are included in the printed 4OS2 manuals. 
  15238.  
  15239. If you type part or all of a command on the line and then press F1, the help 
  15240. system will provide "context-sensitive" help by using the first word on the 
  15241. line as a help topic.  If it's a valid topic, you will see help for that topic 
  15242. automatically; if not, you will see the list of all help topics and you can 
  15243. pick the one you want. 
  15244.  
  15245. You can use this feature to obtain help on any topic -- not just on commands. 
  15246. For example, if you enter the command HELP _DISK you will see help for the 
  15247. _DISK internal variable.  See the HELP command for more information. 
  15248.  
  15249. If you type the name of any internal command at the prompt, followed by a slash 
  15250. and a question mark [/?] like this: 
  15251.  
  15252.         copy /?
  15253.  
  15254. then you will see help for the command in a "quick-reference" style.  Output 
  15255. from a /? display may be redirected with > or >>. 
  15256.  
  15257. The /? option may not work correctly if you have used an alias to redefine how 
  15258. an internal command operates.  To view the /? help for such a command you must 
  15259. add an asterisk to the beginning of the command to disable alias processing. 
  15260. For example, if you have defined this alias: 
  15261.  
  15262.         alias copy *copy /r
  15263.  
  15264. then the command COPY /? will be translated to COPY /R /?, which will not work 
  15265. properly.  However, if you use *COPY /?, the alias will be ignored and the /? 
  15266. will work as you intended. 
  15267.  
  15268. The 4OS2 help system uses OS/2's VIEW.EXE to display this help text.  Once 
  15269. you've started the help system with HELP or F1, you can use VIEW's standard 
  15270. keystrokes to navigate.  For more information, click on the Help menu at the 
  15271. top of the VIEW window. 
  15272.  
  15273. Configuring the Help System 
  15274.  
  15275. You can select which help "books" are displayed when you press the F1 key or 
  15276. enter the HELP command.  A help book is a single .INF file.  This help text is 
  15277. in the file 4OS2.INF. 
  15278.  
  15279. By default, 4OS2 opens this book and the OS/2 command reference file, 
  15280. CMDREF.INF.  You can change the default books opened for the 4OS2 help system 
  15281. with the HelpBook directive in 4OS2.INI.  The default setting is 4OS2+CMDREF. 
  15282. For example, to load only the 4OS2 help when you press F1 or enter the HELP 
  15283. command: 
  15284.  
  15285.         HelpBook = 4OS2
  15286.  
  15287.  
  15288. ΓòÉΓòÉΓòÉ 11.3. Error Messages ΓòÉΓòÉΓòÉ
  15289.  
  15290. This section lists error messages generated by 4OS2, and includes a recommended 
  15291. course of action where appropriate.  If you are unable to resolve the problem, 
  15292. look through your Introduction and Installation Guide for any additional 
  15293. troubleshooting recommendations, then contact JP Software for technical 
  15294. support. 
  15295.  
  15296. Error messages relating to files are generally reports of errors returned by 
  15297. OS/2.  You may find some of these messages (for example, "Access denied") vague 
  15298. enough that they are not always helpful.  4OS2 includes the file name in file 
  15299. error messages, but is often unable to determine a more accurate explanation of 
  15300. these errors.  The message shown is the best information available based on the 
  15301. error codes returned by OS/2. 
  15302.  
  15303. The following list includes all error messages, in alphabetical order: 
  15304.  
  15305. Access denied:  You tried to write to or erase a read-only file, rename a file 
  15306. or directory to an existing name, create a directory that already exists, 
  15307. remove a read-only directory or a directory with files or subdirectories still 
  15308. in it, or access a file in use by another program in a multitasking system. 
  15309.  
  15310. Alias loop:  An alias refers back to itself either directly or indirectly 
  15311. (i.e., a = b = a), or aliases are nested more than 16 levels deep.  Correct 
  15312. your alias list. 
  15313.  
  15314. Already excluded files:  You used more than one exclude range in a command. 
  15315. Combine the exclusions into a single range. 
  15316.  
  15317. Bad disk unit:  Generally caused by a disk drive hardware failure. 
  15318.  
  15319. Batch file missing:  4OS2 can't find the batch (.BTM or .CMD ) file it was 
  15320. running.  It was either deleted, renamed, moved, or the disk was changed. 
  15321. Correct the problem and rerun the file. 
  15322.  
  15323. Can't copy file to itself:  You cannot COPY or MOVE a file to itself.  4OS2 
  15324. attempts to perform full path and filename expansion before copying to help 
  15325. ensure that files aren't inadvertently destroyed. 
  15326.  
  15327. Can't create:  4OS2 can't create the specified file.  The disk may be full or 
  15328. write protected, or the file already exists and is read-only, or the root 
  15329. directory is full. 
  15330.  
  15331. Can't delete:  4OS2 can't delete the specified file or directory.  The disk is 
  15332. probably write protected. 
  15333.  
  15334. Can't get directory:  4OS2 can't read the directory.  The disk drive is 
  15335. probably not ready. 
  15336.  
  15337. Can't install hook:  4OS2 cannot install the operating system hooks required to 
  15338. support the KEYSTACK command.  The operating system may have been damaged or 
  15339. improperly installed, or there may be too few resources to support KEYSTACK. 
  15340.  
  15341. Can't make directory entry:  4OS2 can't create the filename in the directory. 
  15342. This is usually caused by a full root directory. Create a subdirectory and move 
  15343. some of the files to it. 
  15344.  
  15345. Can't open:  4OS2 can't open the specified file.  Either the file doesn't exist 
  15346. or the disk directory or File Allocation Table is damaged. 
  15347.  
  15348. Can't remove current directory:  You attempted to remove the current directory, 
  15349. which OS/2 does not allow.  Change to the parent directory and try again. 
  15350.  
  15351. CD-ROM door open or CD-ROM not ready:  The CD-ROM drive door is open, the power 
  15352. is off, or the drive is disconnected.  Correct the problem and try again. 
  15353.  
  15354. CD-ROM not High Sierra or ISO-9660:  The CD-ROM is not recognized as a data CD 
  15355. (it may be a music CD).  Put the correct CD in the drive and try again. 
  15356.  
  15357. Clipboard is empty or not text format:  You tried to retrieve some text from 
  15358. the OS/2 clipboard, but there is no text available.  Correct the contents of 
  15359. the clipboard and try again. 
  15360.  
  15361. Clipboard is in use by another program:  4OS2 could not access the OS/2 
  15362. clipboard because another program was using it.  Wait until the clipboard is 
  15363. available, or complete any pending action in the other program, then try again. 
  15364.  
  15365. Command line too long:  A single command exceeded 1023 characters, or the 
  15366. entire command line exceeded 2047 characters, during alias and variable 
  15367. expansion.  Reduce the complexity of the command or use a batch file.  Also 
  15368. check for an alias which refers back to itself either directly or indirectly. 
  15369.  
  15370. Command only valid in batch file:  You have tried to use a batch file command, 
  15371. like DO or GOSUB, from the command line or in an alias.  A few commands can 
  15372. only be used in batch files (see the individual commands for details). 
  15373.  
  15374. Contents lost before copy:  COPY was appending files, and found one of the 
  15375. source files is the same as the destination.  That source file is skipped, and 
  15376. appending continues with the next file. 
  15377.  
  15378. Data error:  OS/2 can't read or write properly to the device.  On a floppy 
  15379. drive, this error is usually caused by a defective floppy disk, dirty disk 
  15380. drive heads, or a misalignment between the heads on your drive and the drive on 
  15381. which the disk was created.  On a hard drive, this error may indicate a drive 
  15382. that is too hot or too cold, or a hardware problem.  Retry the operation; if it 
  15383. fails again, correct the hardware or diskette problem. 
  15384.  
  15385. Directory stack empty:  POPD or DIRS can't find any entries in the directory 
  15386. stack. 
  15387.  
  15388. Disk is write protected:  The disk cannot be written to.  Check the disk and 
  15389. remove the write-protect tab or close the write- protect window if necessary. 
  15390.  
  15391. Drive not ready -- close door:  The removable disk drive door is open.  Close 
  15392. the door and try again. 
  15393.  
  15394. Duplicate redirection:  You tried to redirect standard input, standard output, 
  15395. or stand error more than once in the same command. 
  15396.  
  15397. Environment already saved:  You have already saved the environment with a 
  15398. previous SETLOCAL command.  You cannot nest SETLOCAL / ENDLOCAL pairs. 
  15399.  
  15400. Error in command-line directive:  You used the //iniline option to place an 
  15401. 4OS2.INI directive on the startup command line, but the directive is in error. 
  15402. Usually a more specific error message follows, and can be looked up in this 
  15403. list. 
  15404.  
  15405. Error on line [nnnn] of [filename]:  There is an error in your 4OS2.INI file. 
  15406. The following message explains the error in more detail.  Correct the line in 
  15407. error and restart 4OS2 for your change to take effect. 
  15408.  
  15409. Error reading:  OS/2 experienced an I/O error when reading from a device.  This 
  15410. is usually caused by a bad disk, a device not ready, or a hardware error. 
  15411.  
  15412. Error writing:  OS/2 experienced an I/O error when writing to a device.  This 
  15413. is usually caused by a full disk, a bad disk, a device not ready, or a hardware 
  15414. error. 
  15415.  
  15416. Exceeded batch nesting limit:  You have attempted to nest batch files more than 
  15417. 10 levels deep. 
  15418.  
  15419. File Allocation Table bad:  OS/2  can't access the FAT on the specified disk. 
  15420. This can be caused by a bad disk, a hardware error, or an unusual software 
  15421. interaction. 
  15422.  
  15423. File exists:  The requested output file already exists, and 4OS2 won't 
  15424. overwrite it. 
  15425.  
  15426. File is empty:  You attempted to use an empty file in @SELECT.  Correct the 
  15427. file name or contents and try again. 
  15428.  
  15429. File not found:  4OS2 couldn't find the specified file.  Check the spelling and 
  15430. path name. 
  15431.  
  15432. General failure:  This is usually a hardware problem, particularly a disk drive 
  15433. failure or a device not properly connected to a serial or parallel port.  Try 
  15434. to correct the problem, or reboot and try again.  Also see Data error above. 
  15435.  
  15436. Include file not found:  You used the Include directive in the 4OS2.INI file, 
  15437. but the file you specified was not found or could not be opened. 
  15438.  
  15439. Include files nested too deep:  You used the Include directive in the 4OS2.INI 
  15440. file, and attempted to nest include files more than three levels deep. 
  15441.  
  15442. Infinite COPY or MOVE loop:  You tried to COPY or MOVE a directory to one of 
  15443. its own subdirectories and used the /S switch, so the command would run 
  15444. forever.  Correct the command and try again. 
  15445.  
  15446. Insufficient disk space:  COPY or MOVE ran out of room on the destination 
  15447. drive.  Remove some files and retry the operation. 
  15448.  
  15449. Invalid character value:  You gave an invalid value for a character directive 
  15450. in the 4OS2.INI file. 
  15451.  
  15452. Invalid choice value:  You gave an invalid value for a "choice" directive (one 
  15453. that accepts a choice from a list, like "Yes" or "No") in the 4OS2.INI file. 
  15454.  
  15455. Invalid color:  You gave an invalid value for a color directive in the 4OS2.INI 
  15456. file. 
  15457.  
  15458. Invalid count:  The character repeat count for KEYSTACK is incorrect. 
  15459.  
  15460. Invalid date:  An invalid date was entered.  Check the syntax and reenter. 
  15461.  
  15462. Invalid directive name:  4OS2 can't recognize the name of a directive in your 
  15463. 4OS2.INI file. 
  15464.  
  15465. Invalid drive:  A bad or non-existent disk drive was specified. 
  15466.  
  15467. Invalid key name:  You tried to make an invalid key substitution in the 
  15468. 4OS2.INI file, or you used an invalid key name in a keystroke alias or command. 
  15469. Correct the error and retry the operation. 
  15470.  
  15471. Invalid numeric value:  You gave an invalid value for a numeric directive in 
  15472. the 4OS2.INI file. 
  15473.  
  15474. Invalid parameter:  4OS2 didn't recognize a parameter.  Check the syntax and 
  15475. spelling of the command you entered. 
  15476.  
  15477. Invalid path:  The specified path does not exist.  Check the disk specification 
  15478. and/or spelling. 
  15479.  
  15480. Invalid path or file name:  You used an invalid path or filename in a directive 
  15481. in the 4OS2.INI file. 
  15482.  
  15483. Invalid time:  An invalid time was entered.  Check the syntax and reenter. 
  15484.  
  15485. Keystroke substitution table full:  4OS2 ran out of room to store keystroke 
  15486. substitutions entered in the 4OS2.INI file.  Reduce the number of key 
  15487. substitutions or contact JP Software or your dealer for assistance. 
  15488.  
  15489. Label not found:  A GOTO or GOSUB referred to a non-existent label. Check your 
  15490. batch file. 
  15491.  
  15492. Missing ENDTEXT:  A TEXT command is missing a matching ENDTEXT.  Check the 
  15493. batch file. 
  15494.  
  15495. Missing GOSUB:  4OS2 cannot perform the RETURN command in a batch file.  You 
  15496. tried to do a RETURN without a GOSUB, or your batch file has been corrupted. 
  15497.  
  15498. Missing SETLOCAL:  An ENDLOCAL was used without a matching SETLOCAL. 
  15499.  
  15500. No aliases defined:  You tried to display aliases but no aliases have been 
  15501. defined. 
  15502.  
  15503. No closing quote:  4OS2 couldn't find a second matching back quote [`] or 
  15504. double-quote ["] on the command line. 
  15505.  
  15506. No expression:  The expression passed to the @EVAL variable function is empty. 
  15507. Correct the expression and retry the operation. 
  15508.  
  15509. No room for INI file name:  4OS2 does not have enough space to pass the name of 
  15510. your 4OS2.INI file to secondary shells; see String area overflow for more 
  15511. details.  Any [Secondary] section in 4OS2.INI will be ignored in secondary 
  15512. shells until the problem is corrected and the system or session is restarted. 
  15513.  
  15514. No shared memory found:  The SHRALIAS command could not find any global alias 
  15515. list, history list, or directory history list to retain, because you executed 
  15516. the command from a session with local lists.  Start 4OS2 with at least one 
  15517. global list, then invoke SHRALIAS. 
  15518.  
  15519. Not a windowed session:  You tried to use the WINDOW command in a full-screen 
  15520. session.  WINDOW is valid only in windowed sessions. 
  15521.  
  15522. Not an alias:  The specified alias is not in the alias list. 
  15523.  
  15524. Not in environment:  The specified variable is not in the environment. 
  15525.  
  15526. Not ready:  The specified device can't be accessed. 
  15527.  
  15528. Not same device:  This error usually appears in RENAME.  You cannot rename a 
  15529. file to a different disk drive. 
  15530.  
  15531. Out of memory:  4OS2 or OS/2 had insufficient memory to execute the last 
  15532. command.  Try to free some memory by closing other sessions.  If the error 
  15533. persists, contact JP Software for assistance. 
  15534.  
  15535. Out of paper:  OS/2 detected an out-of-paper condition on one of the printers. 
  15536. Check your printer and add paper if necessary. 
  15537.  
  15538. Overflow:  An arithmetic overflow occurred in the @EVAL variable function. 
  15539. Check the values being passed to @EVAL.  @EVAL can handle 16 digits to the left 
  15540. of the decimal point and 8 to the right. 
  15541.  
  15542. Read error:  OS/2 encountered a disk read error; usually caused by a bad or 
  15543. unformatted disk.  Also see Data error above. 
  15544.  
  15545. Sector not found:  Disk error, usually caused by a bad or unformatted disk. 
  15546. Also see Data error above. 
  15547.  
  15548. Seek error:  OS/2 can't seek to the proper location on the disk.  This is 
  15549. generally caused by a bad disk or drive.  Also see Data error above. 
  15550.  
  15551. Sharing violation:  You tried to access a file in use by another program in a 
  15552. multitasking system or on a network.  Wait for the file to become available, or 
  15553. change your method of operation so that another program does not have the file 
  15554. open while you are trying to use it. 
  15555.  
  15556. SHRALIAS already loaded:  You used the SHRALIAS command to load SHRALIAS.EXE, 
  15557. but it was already loaded.  This message is informational and generally does 
  15558. not indicate an error condition. 
  15559.  
  15560. SHRALIAS not loaded:  You used the SHRALIAS /U command to unload SHRALIAS.EXE, 
  15561. but it was never loaded.  This message is informational and may not indicate an 
  15562. error condition. 
  15563.  
  15564. String area overflow:  4OS2 ran out of room to store the text from string 
  15565. directives in the 4OS2.INI file.  Reduce the complexity of the 4OS2.INI file or 
  15566. contact JP Software for assistance. 
  15567.  
  15568. Syntax error:  A command or variable function was entered in an improper 
  15569. format.  Check the syntax and correct the error. 
  15570.  
  15571. Too many open files:  OS/2 has run out of file handles. Try increasing the 
  15572. FILES setting in CONFIG.SYS. 
  15573.  
  15574. Unbalanced parentheses:  The number of left and right parentheses did not match 
  15575. in an expression passed to the @EVAL variable function.  Correct the expression 
  15576. and retry the operation. 
  15577.  
  15578. Unknown command:  A command was entered that 4OS2 didn't recognize and couldn't 
  15579. find in the current search path.  Check the spelling or PATH specification. 
  15580. You can handle unknown commands with the UNKNOWN_CMD alias (see ALIAS). 
  15581.  
  15582. UNKNOWN_CMD loop:  The UNKNOWN_CMD alias (see ALIAS) called itself more than 
  15583. ten times.  The alias probably contains an unknown command itself, and is stuck 
  15584. in an infinite loop.  Correct the alias. 
  15585.  
  15586. Variable loop:  A nested environment variable refers to itself, or variables 
  15587. are nested more than 16 deep.  Correct the error and retry the command. 
  15588.  
  15589. Warning:  Can't load 4OS2DLL:  4OS2 cannot find 4OS2DLL.DLL, a library used to 
  15590. support the BEGINLIBPATH and ENDLIBPATH "environment variables" under OS/2 
  15591. Warp.  4OS2DLL.DLL must be in the 4OS2 directory, or on a directory listed in 
  15592. the LIBPATH setting in CONFIG.SYS.  If it is not, BEGINLIBPATH and ENDLIBPATH 
  15593. will not be available, but all other 4OS2 functions will operate normally. 
  15594.  
  15595. Write error:  OS/2 encountered a disk write error; usually caused by a bad or 
  15596. unformatted disk.  Also see Data error above. 
  15597.  
  15598.  
  15599. ΓòÉΓòÉΓòÉ 11.4. Troubleshooting, Service, and Support ΓòÉΓòÉΓòÉ
  15600.  
  15601. If you need help with 4OS2, we encourage you to review our documentation and 
  15602. then contact us for assistance if required. 
  15603.  
  15604. If you need help with sales, ordering, or shipments (including defective disks 
  15605. or other materials which were shipped to you), or with brand codes, please 
  15606. contact our Sales and Customer Service department.  See Contacting JP Software 
  15607. for our email address, mail address, and telephone numbers.  (The sales and 
  15608. customer service staff cannot assist you with technical problems.  However, if 
  15609. you have multiple questions or are unsure of the nature of the problem, feel 
  15610. free to contact us for customer service; the staff will have a support 
  15611. technician contact you if your question turns out to require technical 
  15612. expertise.) 
  15613.  
  15614. If you need technical support for 4OS2, review the Technical Support 
  15615. information section, which tells you what we need to know to provide you with 
  15616. accurate and timely support.  Then contact us via one of the methods described 
  15617. there.  (The technical support staff cannot assist you with sales, ordering, 
  15618. replacement brand cards, or other administrative matters.) 
  15619.  
  15620.  
  15621. ΓòÉΓòÉΓòÉ 11.4.1. Technical Support ΓòÉΓòÉΓòÉ
  15622.  
  15623. Before You Contact Us 
  15624.  
  15625. Before contacting us for support, please check this help file, the Reference 
  15626. Manual and other documentation for answers to your question.  If you can't find 
  15627. what you need, try searching this help file.  If you're having trouble getting 
  15628. 4OS2 to run properly, review the information on Error Messages, and look 
  15629. through the README.DOC file for any last-minute information. 
  15630.  
  15631. (If you need help with sales, ordering, shipments, brand codes, or other 
  15632. similar non-technical issues please contact our Sales and Customer Service 
  15633. department.  See Contacting JP Software for our addresses.) 
  15634.  
  15635. If you do need to contact us for support, we can do a much better job of 
  15636. assisting you if you can give us some basic information, separate from your 
  15637. interpretations of or conclusions about the problem.  The first four items 
  15638. listed below are essential for us to be able to understand and assist you with 
  15639. your problem: 
  15640.  
  15641.     ╨┐   What environment are you working in?  This includes the operating 
  15642.         system version are you using, the version of the JP Software product 
  15643.         involved, and related information such as network connections and the 
  15644.         name and version number of any other software which appears to be 
  15645.         involved in the problem.  Use the VER /R command to determine the 4OS2 
  15646.         version and operating system version. 
  15647.  
  15648.     ╨┐   What exactly did you do?  A concise description of what steps you must 
  15649.         take to make the problem appear is much more useful than a long 
  15650.         analysis of what might be happening. 
  15651.  
  15652.     ╨┐   What did you expect to happen?  Tell us the result you expected from 
  15653.         the command or operation in question, so that we understand what you 
  15654.         are trying to do. 
  15655.  
  15656.     ╨┐   What actually happened?  At what point did the failure occur?  If you 
  15657.         saw an error message or other important or unusual information on the 
  15658.         screen, what exactly did it say? 
  15659.  
  15660.     ╨┐   Briefly, what techniques did you use to try to resolve the problem? 
  15661.         What results did you get? 
  15662.  
  15663.     ╨┐   If the problem seems related to startup and configuration issues, what 
  15664.         are the contents of any startup files you use (such as 4START and 
  15665.         4EXIT, and 4OS2.INI), any batch files they call, and any alias or 
  15666.         environment variable files they load? 
  15667.  
  15668.     ╨┐   Can you repeat the problem or does it occur randomly?  If it's random, 
  15669.         does it seem related to the programs you're using when the problem 
  15670.         occurs? 
  15671.  
  15672.  Electronic Support 
  15673.  
  15674.  Usually the best way to contact us for support is via email (you can also 
  15675.  contact us in our CompuServe support conference).  See Contacting JP Software 
  15676.  or see our web site at http://www.jpsoft.com/ for our addresses. 
  15677.  
  15678.  Whenever possible, we also read messages posted on the Usenet 
  15679.  comp.os.msdos.4dos newsgroup, (this newsgroup is named for 4DOS, but carries 
  15680.  messages related to all JP Software products).  This newsgroup offers valuable 
  15681.  information and discussions with other users, but is not managed by JP 
  15682.  Software, and is not an official support channels.  To be certain of a direct 
  15683.  answer from our support staff use email, or contact us by telephone, fax, or 
  15684.  mail. 
  15685.  
  15686.  A number of support resources are available from our web site listed above, 
  15687.  including error message listings, documentation files, product histories, 
  15688.  technical tips and discussions, other technical information, and links to 
  15689.  other companies' sites.  We update this information regularly, and we 
  15690.  encourage you to check the Technical Support area of the web site to see if 
  15691.  the information there will address any questions you have. 
  15692.  
  15693.  Technical support messages should be sent as standard ASCII text. Please do 
  15694.  not transmit attached files, binary files, screen images, or any file over 10K 
  15695.  bytes in size to any of our electronic technical support addresses unless 
  15696.  asked to do so by our support staff. 
  15697.  
  15698.  Telephone Support 
  15699.  
  15700.  Technical support by telephone within the US and Canada is handled on a 
  15701.  callback basis.  To contact our support staff, call the US / Canada Support 
  15702.  Line at any time and leave a short voice mail message describing your 
  15703.  technical problem (this line can not be used for sales / customer service 
  15704.  issues such as pricing, ordering, upgrades, or shipping problems).  We check 
  15705.  these messages regularly throughout the day and will return your call as 
  15706.  quickly as possible.  See Contacting JP Software for our phone numbers. 
  15707.  
  15708.  We generally return all technical support calls within 24 hours (weekends and 
  15709.  holidays excluded), and most are returned much more quickly, usually on the 
  15710.  same business day.  If your problem is urgent and requires a faster response, 
  15711.  please let us know and we will try to accommodate you.  If you contact us by 
  15712.  telephone and don't receive a reply within 24 hours, please try again.  We 
  15713.  probably tried to return your call and were unable to reach you. 
  15714.  
  15715.  If you are calling from outside the US and Canada, are not sure if your 
  15716.  question requires technical support, need other assistance in addition to your 
  15717.  technical questions, or find yourself playing "telephone tag" with our support 
  15718.  staff, please call our main number listed above.  Our office staff will assist 
  15719.  you with all of your concerns, and have a technical support representative 
  15720.  call you back if necessary. 
  15721.  
  15722.  If you have a problem with a batch file or complex alias, please contact us 
  15723.  electronically if possible.  Include a copy of the batch file or alias in 
  15724.  question, preferably as part of the text of your message (not as an 
  15725.  attachment).  If you do not have electronic access, contact us by fax if 
  15726.  possible.  Problems of this type are usually very difficult to diagnose over 
  15727.  the telephone because we cannot see the material you are working with.  For 
  15728.  longer batch files (over about 25 lines), do your best to reproduce the 
  15729.  problem in a smaller test file. 
  15730.  
  15731.  If you need more in-depth assistance with the development of complex batch 
  15732.  files or other procedures, please contact us for information on consulting 
  15733.  services. 
  15734.  
  15735.  
  15736. ΓòÉΓòÉΓòÉ 11.4.2. Contacting JP Software ΓòÉΓòÉΓòÉ
  15737.  
  15738. You can contact JP Software at the following addresses and numbers.  Our normal 
  15739. business hours are 8:30 AM to 5:00 PM weekdays, eastern US time (except 
  15740. holidays). 
  15741.  
  15742.     Address:          JP Software Inc. 
  15743.                       P.O. Box 1470 
  15744.                       East Arlington, MA 02474 
  15745.                       USA 
  15746.  
  15747.     Main number:      (781) 646-3975 
  15748.  
  15749.     Fax:              (781) 646-0904 
  15750.  
  15751.     Order Line:       (800) 368-8777  (US / Canada, orders only) 
  15752.  
  15753.     Support Line:     (781) 646-0798  (US / Canada only) 
  15754.                       [see the Telephone Support topic under Technical Support 
  15755.                       before using this number] 
  15756.  
  15757.     Internet:         Sales / Customer Service:  sales@jpsoft.com 
  15758.  
  15759.                       Technical Support:  support@jpsoft.com 
  15760.  
  15761.                       World Wide Web:  http://www.jpsoft.com/ 
  15762.  
  15763.                       Downloads via FTP:  ftp://ftp.jpsoft.com/ 
  15764.  
  15765.     CompuServe:       Sales / Customer Service:  Send mail to user ID 75020,244 
  15766.  
  15767.                       Support Forum: 
  15768.  
  15769.                          General Access:  Use Quick Reference Word JPSOFT 
  15770.  
  15771.                          Off Line Reader Access:  GO CVTHREE, section 2 
  15772.  
  15773.                          Web Access to Compuserve: 
  15774.                            Forum URL: 
  15775.                       http://go.compuserve.com/cvthree?AREA=Msgs&Sec=2 
  15776.                            Files URL: 
  15777.                       http://go.compuserve.com/cvthree?AREA=File&Sec=2 
  15778.  
  15779.                       Please Note:  Whether you reach our CompuServe support 
  15780.                       forum via CompuServe's software, a web browser, or an 
  15781.                       off-line reader, address your support questions in the 
  15782.                       forum to user ID 75300,1215. 
  15783.  
  15784.  
  15785. ΓòÉΓòÉΓòÉ 12. What's New? ΓòÉΓòÉΓòÉ
  15786.  
  15787. This section provides a comprehensive list of what's changed since our previous 
  15788. major release, version 2.52.  Maintenance changes made between versions 3.00 
  15789. and 3.02 are indicated by 3.01 or 3.02 in the left margin. 
  15790.  
  15791. This topic does not explain how to use each new feature.  Instead, where 
  15792. appropriate we have provided links below to the detailed help topics containing 
  15793. additional usage information or other documentation. 
  15794.  
  15795. Some of the descriptions here may be more detailed than you need; if you aren't 
  15796. using a feature, feel free to skip to the next item.  If you are new to 4OS2 
  15797. with version 3.02, you can skip this topic entirely. 
  15798.  
  15799. This topic is divided into the following subtopics: 
  15800.  
  15801.             General Features and Enhancements 
  15802.             Line Editing and History 
  15803.             Command Changes 
  15804.             Variables and Variable Functions 
  15805.             Startup and Configuration 
  15806.             Technical and Compatibility Enhancements 
  15807.             Bugs Fixed 
  15808.  
  15809.  The major new features in this release include: 
  15810.  
  15811.     ╨┐   Extended Directory Searches:  allow you to change to a directory 
  15812.         anywhere on your system by entering only part of its name.  They must 
  15813.         be explicitly enabled before you can use them.  See Directory 
  15814.         Navigation for complete details. 
  15815.  
  15816.     ╨┐   New File Exclusion Ranges: provide a convenient way to exclude files 
  15817.         from any internal command -- faster and more flexible than using 
  15818.         EXCEPT. 
  15819.  
  15820.     ╨┐   The new Batch File Debugger can execute each line step by step, process 
  15821.         or trace into additional batch files, and display variables, aliases, 
  15822.         and expanded commands at each step. 
  15823.  
  15824.     ╨┐   New commands include: 
  15825.  
  15826.                  OPTION:  Offers complete configuration adjustment, either 
  15827.                  through interactive dialogs or on the command line. 
  15828.  
  15829.                  SWITCH:  Provides for "case" statements in batch files. 
  15830.  
  15831.                  TOUCH:  Adjusts file dates and times. 
  15832.  
  15833.                  TREE:  Displays the directory tree, with or without file 
  15834.                  names, in a variety of formats. 
  15835.  
  15836.  
  15837. ΓòÉΓòÉΓòÉ 12.1. General Features and Enhancements ΓòÉΓòÉΓòÉ
  15838.  
  15839. What's New - General Features and Enhancements 
  15840.  
  15841.         ╨┐  Added a complete batch file debugger.  The debugger displays the 
  15842.            batch file in a window and allows you to execute each line step by 
  15843.            step, process or trace into additional batch files and subroutines, 
  15844.            and display variables and aliases at each step.  See Batch File 
  15845.            Debugging for complete details. 
  15846.  
  15847.         ╨┐  Popup windows (for filename completion, command history recall, 
  15848.            etc.) now allow you to search for a line within the window contents 
  15849.            by typing the first few characters of the line.  The search string 
  15850.            is displayed in the lower right corner of the window. 
  15851.  
  15852.         ╨┐  You can now redirect to and from the clipboard by using the 
  15853.            pseudo-device name CLIP:.  For example, to redirect DIR to the 
  15854.            clipboard: 
  15855.  
  15856.                               dir *.doc > clip:
  15857.  
  15858.         ╨┐  The online help has been reorganized to make it easier to navigate 
  15859.            through the main topics, and includes additional reference 
  15860.            information, reference tables, and a glossary. 
  15861.  
  15862.         ╨┐  The default maximum file description length is now 511 bytes in all 
  15863.            products. 
  15864.  
  15865.         ╨┐  Two new characters can now follow the escape character:  An escape 
  15866.            followed by a 'q' will substitute a double quote; an escape followed 
  15867.            by a 'k' will substitute a back quote. 
  15868.  
  15869.         ╨┐  The decimal and thousands characters used in @EVAL and in displayed 
  15870.            version numbers and other similar locations are now controllable 
  15871.            with the DecimalChar and ThousandsChar directives in the .INI file, 
  15872.            the corresponding options in the configuration or OPTION dialogs, 
  15873.            and the SETDOS /G command.  These characters are saved by SETLOCAL 
  15874.            and restored by ENDLOCAL.  This is intended as an aid to those 
  15875.            writing batch files which perform arithmetic operations and which 
  15876.            may be used in countries with differing separator characters. 
  15877.  
  15878.         ╨┐  The directory stack size used by PUSHD and POPD has been increased 
  15879.            from 255 to 511 bytes to leave adequate room for long directory 
  15880.            names. 
  15881.  
  15882.         ╨┐  .BTM files can now be longer than 64K bytes, though compressed .BTMs 
  15883.            still have to be less than 64K. 
  15884.  
  15885.  
  15886. ΓòÉΓòÉΓòÉ 12.2. Command Line Editing ΓòÉΓòÉΓòÉ
  15887.  
  15888. What's New - Command Line Editing 
  15889.  
  15890.         ╨┐  Extended directory searches can be used directly from the command 
  15891.            line for quick directory navigation; see Automatic Directory Changes 
  15892.            or Directory Navigation for details. 
  15893.  
  15894.         ╨┐  Made several ehancements to filename completion, including: 
  15895.  
  15896.            *        The Ctrl-A key, which toggles between long and short 
  15897.                     filenames for filename completion, can now be hit at any 
  15898.                     point during command line entry -- not just during filename 
  15899.                     completion.  For example, if you hit Ctrl-A at the 
  15900.                     beginning of the command line, all filenames subsequently 
  15901.                     returned for that line will be short names (until you hit 
  15902.                     Ctrl-A again). 
  15903.  
  15904.            *        Filename completion can now be customized for individual 
  15905.                     commands via the new FileCompletion .INI directive (or 
  15906.                     environment variable).  For example, you can configure 4OS2 
  15907.                     to complete only the names of .TXT files when the command 
  15908.                     line starts with the name of your text editor, or to 
  15909.                     display only directory names when you are entering a CD 
  15910.                     command. 
  15911.  
  15912.            *        The F7 filename completion popup window now sorts the 
  15913.                     filename list alphabetically. 
  15914.  
  15915.         ╨┐  You can now expand aliases immediately while still on the command 
  15916.            line with the Ctrl-F key. 
  15917.  
  15918.         ╨┐  Command line history recall will now stop at the beginning and end 
  15919.            of the history list rather than wrapping around, if you set HistWrap 
  15920.            to No in the .INI file or through the configuration dialogs. 
  15921.  
  15922.  
  15923. ΓòÉΓòÉΓòÉ 12.3. Command Changes ΓòÉΓòÉΓòÉ
  15924.  
  15925. What's New - Command Changes 
  15926.  
  15927.         ╨┐  ACTIVATE:  This new command switches to another window. 
  15928.  
  15929.         ╨┐  ATTRIB:  Added the /E switch to disable display of non-fatal errors. 
  15930.            Also, ATTRIB now allows underscores in the attribute string, so that 
  15931.            you can get a result from the %@ATTRIB variable function and feed it 
  15932.            directly to the ATTRIB command. 
  15933.  
  15934.         ╨┐  CD and CDD:  Now support extended directory searches, which allow 
  15935.            you to change to a directory anywhere on your system by entering 
  15936.            only part of its name.  The CDD /S switch builds the extended 
  15937.            directory search database.  Extended directory searches mmust be 
  15938.            explicitly enabled before you can use them.  See Directory 
  15939.            Navigation for complete details. 
  15940.  
  15941.         ╨┐  CDD:  Added the /A switch to display the current directory for all 
  15942.            existing and ready drives from C: to Z:. 
  15943.  
  15944.         ╨┐  CHCP:  Changed to only affect the current process and its children, 
  15945.            as in CMD.EXE. 
  15946.  
  15947.         ╨┐  COPY:  Added several switches: 
  15948.  
  15949.              /E         Disable display of non-fatal errors. 
  15950.              /K         Preserve read-only attributes during a COPY. 
  15951.              /X         Clear the archive bit from the source file after a 
  15952.                         successful copy. 
  15953.              /Z         Overwrite read-only target files. 
  15954.  
  15955.         ╨┐  COPY:  When copying from a FAT drive to an HPFS drive, COPY will now 
  15956.            use the .LONGNAME extended attribute of the source file (if 
  15957.            available) to determine the long name.  When copying from HPFS to 
  15958.            FAT, COPY sets the .LONGNAME attribute if possible, to preserve the 
  15959.            long name. 
  15960.  
  15961.         ╨┐  DEL:  Added two switches: 
  15962.  
  15963.              /E         Disable display of non-fatal errors. 
  15964.              /W         Clear the file to 0's before deleting it. 
  15965.  
  15966.         ╨┐  DIR:  Added or modified several of the DIR switches: 
  15967.  
  15968.              /2         Now forces the use of truncated names on HPFS drives. 
  15969.              /4         Now forces the use of truncated names on HPFS drives, 
  15970.                         and displays files between 1 and 9.9 Mb in tenths 
  15971.                         (i.e., "2.4M"). 
  15972.              /G         (New) Displays the allocated size instead of the file 
  15973.                         size. 
  15974.              /W         Now forces the use of truncated names on HPFS drives. 
  15975.  
  15976.         ╨┐  DIRHISTORY:  This new command has the same syntax as HISTORY, but it 
  15977.            modifies the directory history. 
  15978.  
  15979.         ╨┐  DO:  Added two new DO loop types: 
  15980.  
  15981.            *        "DO x IN filename" retrieves each matching filename from a 
  15982.                     wildcard spec and inserts the value into the variable. 
  15983.            *        "DO x IN @filename" retrieves each line in the file and 
  15984.                     inserts it into the variable. 
  15985.  
  15986.         ╨┐  ECHOERR and ECHOSERR:  These new commands are like ECHO and ECHOS, 
  15987.            but output goes to the standard error device instead of standard 
  15988.            output. 
  15989.  
  15990.         ╨┐  ENDLOCAL:  To aid in making batch files portable, SETLOCAL and 
  15991.            ENDLOCAL now save and restore the command separator, escape 
  15992.            character, parameter character, and decimal and thousands 
  15993.            separators. 
  15994.  
  15995.         ╨┐  FFIND:  Added two new switches: 
  15996.  
  15997.              /I         Do a literal match even if the text search string 
  15998.                         contains wildcard characters. 
  15999.              /R         Start searching for text from the end backwards. 
  16000.  
  16001.            Also, the /X switch will now display the offset in both hex and 
  16002.            decimal. 
  16003.  
  16004.         ╨┐  FOR:  Added several new switches for compatibility with Windows NT 
  16005.            4.0's CMD.EXE; see the command reference information for complete 
  16006.            details. 
  16007.  
  16008.         ╨┐  GOTO:  Added support for Windows NT 4.0's "GOTO :EOF" -- If there is 
  16009.            no ":EOF" label, GOTO ends the current batch file (equivalent to a 
  16010.            QUIT). 
  16011.  
  16012.         ╨┐  IF / IFF:  These commands now support nested conditional tests, with 
  16013.            parentheses, e.g.: 
  16014.  
  16015.                               if  (%a == 1 .or. %b == 2) .and. %c == 3 echo something
  16016.  
  16017.            See the command reference information for complete syntax rules. 
  16018.  
  16019.         ╨┐  Added a new "IF DEFINED varname" test, which succeeds if the 
  16020.            specified variable exists in the environment.  This is included for 
  16021.            compatibility with Windows NT 4.0's CMD.EXE, and is the same as a 
  16022.            test like: 
  16023.  
  16024.                               if  "%varname" ne "" ...
  16025.  
  16026.         ╨┐  Changed the comparison tests to accept a leading decimal separator 
  16027.            as a numeric character, provided the remainder of the string is 
  16028.            numeric and does not contain additional decimal characters. 
  16029.  
  16030.         ╨┐  KEYSTACK:  This new command allows you to pass keystrokes to PM and 
  16031.            VIO windowed applications (but not to DOS apps or VIO full-screen 
  16032.            sessions). 
  16033.  
  16034.         ╨┐  LIST:  Added a range of enhancements, including: 
  16035.  
  16036.            *        Ctrl-PgUp and Ctrl-PgDn will go to the previous and next 
  16037.                     file in the current group, respectively. 
  16038.  
  16039.            *        Ctrl-F searches backwards for a text string; Ctrl-N repeats 
  16040.                     the last search, searching backwards. 
  16041.  
  16042.            *        Matching strings on the first page are now highlighted 
  16043.                     after a search. 
  16044.  
  16045.            *        When piping output to LIST in most cases you no longer need 
  16046.                     the /S switch; for example, to view DIR's output in LIST 
  16047.                     you can now use: 
  16048.  
  16049.                                                 dir  | list
  16050.  
  16051.                     Also, added three new switches: 
  16052.  
  16053.                       /I         Ignore case in a /T search. 
  16054.                       /R         The search initiated by /T goes backwards from 
  16055.                                  the end of the file. 
  16056.                       /T         Search for text when LIST starts. 
  16057.  
  16058.         ╨┐  MD:  Added the /N switch to create a directory without updating the 
  16059.            extended directory search database (useful for temporary 
  16060.            directories). 
  16061.  
  16062.         ╨┐  MOVE:  Added the /E switch to disable display of non-fatal errors. 
  16063.  
  16064.         ╨┐  MOVE:  When moving files from a FAT drive to an HPFS drive, MOVE 
  16065.            will now use the .LONGNAME extended attribute of the source file (if 
  16066.            available) to determine the long name.  When moving files from HPFS 
  16067.            to FAT, MOVE sets the .LONGNAME attribute if possible, to preserve 
  16068.            the long name. 
  16069.  
  16070.         ╨┐  OPTION:  This new command can be used for two purposes.  When 
  16071.            invoked without parameters, it loads configuration dialogs which 
  16072.            adjust most commonly-used settings in the .INI file.  The dialogs 
  16073.            provide a convenient method of adjusting configuration without 
  16074.            manually editing the .INI file.  OPTION can also be used to change 
  16075.            specific settings on an individual basis with the OPTION Name=value 
  16076.            ... syntax; see the command for complete details. 
  16077.  
  16078.         ╨┐  PROMPT:  Added the $+ metacharacter, which displays one + for each 
  16079.            PUSHD level. 
  16080.  
  16081.         ╨┐  REN / RENAME:  Added the /E switch to disable display of non-fatal 
  16082.            errors. 
  16083.  
  16084.         ╨┐  RETURN:  Now accepts an optional argument for the errorlevel to 
  16085.            return.  The errorlevel can be tested with %? or IF ERRORLEVEL. 
  16086.  
  16087.         ╨┐  SCREEN, SCRPUT, and VSCRPUT:  If you specify 999 for the row, the 
  16088.            text will be centered vertically; if you specify 999 for the column, 
  16089.            the text will be centered horizontally. 
  16090.  
  16091.         ╨┐  SELECT:  You can now type characters from the start of a filename 
  16092.            and the selection bar will jump to the first matching name.  Due to 
  16093.            this change, the key to popup LIST on the currently selected file 
  16094.            has been changed from L to ^L.  Also, added the /T:acw switch to 
  16095.            select the date and time to use for display and sorting on HPFS 
  16096.            drives. 
  16097.  
  16098.         ╨┐  SETLOCAL:  To aid in making batch files portable, SETLOCAL now saves 
  16099.            the command separator, escape character, parameter character, and 
  16100.            decimal and thousands separators; ENDLOCAL restores them. 
  16101.  
  16102.         ╨┐  SHIFT:  The new "/n" argument will start the shift at the specified 
  16103.            argument -- i.e., "shift /2" moves %3 to %2, %4 to %3, etc. 
  16104.  
  16105.         ╨┐  START:  Added /LD for a local directory history list. 
  16106.  
  16107.         ╨┐  START:  Added support for the (undocumented) Warp 4 CMD.EXE 
  16108.            "DosSetting.xxx=yyy" environment variables to specify settings for 
  16109.            DOS sessions. 
  16110.  
  16111.         ╨┐  SWITCH:  This new command provides a C-like switch construct for 
  16112.            batch files.  SWITCH scans each CASE statement looking for a 
  16113.            matching value; if it finds one it executes the block of code inside 
  16114.            that CASE statement, and then jumps to the end of the switch block 
  16115.            (ENDSWITCH).  If no CASE statement matches, SWITCH will execute the 
  16116.            code in the (optional) DEFAULT block. 
  16117.  
  16118.         ╨┐  TITLE:  This new command changes the 4OS2 window title for windowed 
  16119.            sessions (it is not effective in full-screen sessions). 
  16120.  
  16121.         ╨┐  TOUCH:  This new command changes the date and/or time for a file or 
  16122.            files.  You can set a specified date and time or use the current 
  16123.            system clock, and you can optionally change the last access / 
  16124.            creation date and time fields on HPFS drives. 
  16125.  
  16126.         ╨┐  TREE:  This new command displays a graphical directory tree using 
  16127.            either line-drawing or ASCII characters.  It can also optionally 
  16128.            display file names, dates, times, and sizes. 
  16129.  
  16130.         ╨┐  UNALIAS:  Added the /R switch to read a file of aliases to remove. 
  16131.  
  16132.         ╨┐  UNSET:  Added the /R switch to read a file of variables to remove. 
  16133.  
  16134.  3.01  ╨┐   FFIND:  Added support for piping into FFIND.  You can either specify 
  16135.            CON for the filename, or if no filename is specified FFIND will 
  16136.            detect whether STDIN is a pipe and use that. 
  16137.  
  16138.  3.01  ╨┐   TOUCH:  /T[acw] and /D[acw] now default to the current date and 
  16139.            time.  Previously when the "a", "c", or "w" was specified the date 
  16140.            or time had to be specified also. 
  16141.  
  16142.  3.02  ╨┐   CD and CDD:  Added the /N switch to disable extended directory 
  16143.            searches and the change directory popup window (intended primarily 
  16144.            for use in batch files). 
  16145.  
  16146.  
  16147. ΓòÉΓòÉΓòÉ 12.4. Variables and Functions ΓòÉΓòÉΓòÉ
  16148.  
  16149. What's New - Variables and Functions Added or updated the following internal 
  16150. variables (all variables listed are new unless otherwise noted): 
  16151.  
  16152.         ╨┐  _APMAC:  Advanced Power Management AC line status. 
  16153.  
  16154.         ╨┐  _APMBATT:  Advanced Power Management battery status. 
  16155.  
  16156.         ╨┐  _APMLIFE:  Advanced Power Management remaining battery life. 
  16157.  
  16158.         ╨┐  _CPU:  Now returns "686" for Pentium Pro. 
  16159.  
  16160.         ╨┐  _DOWI:  Returns the current day of week as an integer (Sun = 1, Mon 
  16161.            = 2, etc.). 
  16162.  
  16163.         ╨┐  _XPIXELS:  Returns the physical screen horizontal size in pixels. 
  16164.  
  16165.         ╨┐  _YPIXELS:  Returns the physical screen vertical size in pixels. 
  16166.  
  16167.  3.01  ╨┐   _CMDPROC:  Returns the name of the current command processor. 
  16168.  
  16169.  Added or updated the following variable functions (all functions listed are 
  16170.  new unless otherwise noted): 
  16171.  
  16172.         ╨┐  @CLIP[n]:  Returns line n from the clipboard (base 0). 
  16173.  
  16174.         ╨┐  @CONVERT[input,output,value]:  Converts a number from one base to 
  16175.            another. 
  16176.  
  16177.         ╨┐  @DAY[date]:  Returns the day for the specified date. 
  16178.  
  16179.         ╨┐  @DOW[date]:  Returns the day of week for the specified date, as a 
  16180.            string (Sun, Mon, etc.) 
  16181.  
  16182.         ╨┐  @DOWI[date]:  Returns the day of week for the specified date, as an 
  16183.            integer (Sun = 1, Mon = 2, etc.). 
  16184.  
  16185.         ╨┐  @DOY[date]:  Returns the day of year for the specified date (136). 
  16186.  
  16187.         ╨┐  @EAREAD[filename,EAname]:  Returns the specified text extended 
  16188.            attribute for the file. 
  16189.  
  16190.         ╨┐  @EAWRITE[filename,EAname,[value]]:  Writes the specified text 
  16191.            extended attribute for the file. 
  16192.  
  16193.         ╨┐  @EVAL[expression]:  Now supports user-definable decimal and 
  16194.            thousands characters; see DecimalChar and ThousandsChar, or SETDOS 
  16195.            /G for details. 
  16196.  
  16197.         ╨┐  @EXEC[command]:  This function has been modified; if you preface the 
  16198.            command with an '@', @EXEC will return an empty string rather than 
  16199.            the result code of the command. 
  16200.  
  16201.         ╨┐  @EXECSTR[command]:  Returns the first line written to STDOUT by the 
  16202.            specified command.  (This is intended to provide functionality 
  16203.            similar to UNIX back-quoting.) 
  16204.  
  16205.         ╨┐  @EXPAND[filename[,attributes]]:  Expands a wildcard filename and 
  16206.            returns all of the matching filenames / directories on a single 
  16207.            line. 
  16208.  
  16209.         ╨┐  @FILEDATE[filename[,acw]] / @FILETIME[filename[,acw]]:  Added the 
  16210.            optional second argument determines which date / time field to 
  16211.            return on HPFS drives. 
  16212.  
  16213.         ╨┐  @FILESIZE[filename[,bkm[,a]]:  Added the optional third argument 
  16214.            a(llocated); if specified, the function returns the size actually 
  16215.            used on disk, not the amount of data in the file. 
  16216.  
  16217.         ╨┐  @INSERT[n,string1,string2]:  Inserts string1 into string2 starting 
  16218.            at offset n. 
  16219.  
  16220.         ╨┐  @LEFT[n,string]:  Returns the leftmost n characters of string. 
  16221.  
  16222.         ╨┐  @MONTH[date]:  Return the month for the specified date. 
  16223.  
  16224.         ╨┐  @NUMERIC[string]:  Now considers a leading decimal separator as a 
  16225.            numeric character, provided the remainder of the string is numeric 
  16226.            and does not contain additional decimal characters. 
  16227.  
  16228.         ╨┐  @REPLACE[string1,string2,text]:  Replaces all occurrences of string1 
  16229.            in text with string2. 
  16230.  
  16231.         ╨┐  @RIGHT[n,string]:  Returns the rightmost n characters of string. 
  16232.  
  16233.         ╨┐  @SEARCH[filename[,path]]:  Now accepts an optional second argument 
  16234.            for the path to search. 
  16235.  
  16236.         ╨┐  @SELECT[filename,top,left,bottom,right,title[,1]]:  Has a new 
  16237.            optional argument following the title.  If it's set to 1, @SELECT 
  16238.            will sort the list alphabetically. 
  16239.  
  16240.         ╨┐  @STRIP[chars,string]:  Return string with the characters in chars 
  16241.            removed. 
  16242.  
  16243.         ╨┐  @WILD[string1,string2]:  Does a wildcard comparison on the two 
  16244.            strings and returns 1 if they match; 0 if they don't. 
  16245.  
  16246.         ╨┐  @YEAR[date]:  Return the year for the specified date. 
  16247.  
  16248.  3.01  ╨┐   @EAWRITE[filename,EAname,[value]]: You can now delete an EA by 
  16249.            specifying an empty third argument (i.e., 
  16250.            "%@earead[filename,.subject,]). 
  16251.  
  16252.  
  16253. ΓòÉΓòÉΓòÉ 12.5. Startup and Configuration ΓòÉΓòÉΓòÉ
  16254.  
  16255. What's New - Startup and Configuration 
  16256.  
  16257.         ╨┐  In previous versions the "global" portion of the .INI file (the part 
  16258.            prior to any [Primary] or [Secondary] section) did not have a 
  16259.            section name.  This has been changed; a section name matching the 
  16260.            product name is now required, for example: 
  16261.  
  16262.                               [4OS2]
  16263.                               EditMode  = Insert
  16264.                               .....
  16265.  
  16266.            [Primary] and [Secondary] section names are still supported as well. 
  16267.  
  16268.         Added or modified the following .INI directives (all are new unless 
  16269.         otherwise noted): 
  16270.  
  16271.         ╨┐  CDDWinLeft, CDDWinTop, CDDWinWidth, CDDWinHeight, and CDDWinColors: 
  16272.            These directives set the position, size, and color of the popup 
  16273.            window used for extended directory searches. 
  16274.  
  16275.         ╨┐  DescriptionName:  This directive has a new capability:  If set to 
  16276.            "EA", 4OS2 will use extended attributes (specifically, the 
  16277.            ".SUBJECT" EA) for file descriptions, rather than DESCRIPT.ION or 
  16278.            another file.  Depending on operating system configuration and cache 
  16279.            behavior, this setting can cause a significant reduction in 
  16280.            performance, but may be useful when working with other programs that 
  16281.            manipulate Extended Attributes. 
  16282.  
  16283.         ╨┐  DuplicateBugs = Yes | NO:  Tells the parser to duplicate certain 
  16284.            CMD.EXE errors which may be important in solving rare compatibility 
  16285.            problems.  The only bug currently replicated by this command is the 
  16286.            IF command. 
  16287.  
  16288.         ╨┐  FileCompletion = cmd1:ext1 ext2;cmd2 ...:  Sets up command-specific 
  16289.            filename completion. 
  16290.  
  16291.         ╨┐  FuzzyCD =  0 | 1 | 2 | 3:  Enables or disables extended directory 
  16292.            searches, and controls their behavior. 
  16293.  
  16294.         ╨┐  HistMove = Yes | NO:  If set to Yes, a recalled line from the 
  16295.            command history is moved to the end of the history list, and removed 
  16296.            from its original location. 
  16297.  
  16298.         ╨┐  Include = filename:  Includes the contents of the named file as if 
  16299.            they had appeared at the location of the Include= directive in the 
  16300.            current .INI file. 
  16301.  
  16302.         ╨┐  ListboxBarColors = Color:  Sets the color for the highlight bar in 
  16303.            the popup listboxes (command history, filename completion, @SELECT, 
  16304.            etc.). 
  16305.  
  16306.         ╨┐  TabStops = nnnn (8):  This new .INI directive specifies the tab 
  16307.            expansion size when displaying a file in LIST. 
  16308.  
  16309.         ╨┐  TreePath = Path:  Specifies the location of JPSTREE.IDX (the 
  16310.            extended directory search database; defaults to C:\). 
  16311.  
  16312.  3.02  ╨┐   ListRowStart  = 1 |  0:  Specifies whether LIST and FFIND consider 
  16313.            the first line in a file to be line "1" or line "0".  The new 
  16314.            default is "1". 
  16315.  
  16316.  3.02  ╨┐   PathExt  = NO |  Yes:  Determines whether 4OS2 uses standard 
  16317.            extensions when searching the path, or uses the alternate extensions 
  16318.            specified in the PATHEXT environment variable. 
  16319.  
  16320.  3.02  ╨┐   UnixPaths= Yes |  NO:  Enables or disables the forward slash as a 
  16321.            path separator in the command name (the first item on the command 
  16322.            line). 
  16323.  
  16324.  
  16325. ΓòÉΓòÉΓòÉ 12.6. Technical and Compatibility Enhancements ΓòÉΓòÉΓòÉ
  16326.  
  16327. What's New - Technical and Compatibility Enhancements 
  16328.  
  16329.         ╨┐  Removed the 16-bit version of 4OS2. 
  16330.  
  16331.         ╨┐  Replaced the old 4OS2DLL.DLL / TCOS2DLL.DLL with a single file for 
  16332.            both 4OS2 and TCOS2, named JPOS2DLL.DLL.  Also, JPOS2DLL is now 
  16333.            loaded dynamically, so you can start the product without it if 
  16334.            necessary (e.g. from a floppy boot). 
  16335.  
  16336.         ╨┐  Worked around an OS/2 problem that prevented %_CPU from detecting 
  16337.            anything higher than a 486. 
  16338.  
  16339.         ╨┐  Updated 4OS2 to remove explicit references to the Presentation 
  16340.            Manager DLLs (this should make it easier to use 4OS2 from a floppy 
  16341.            disk boot). 
  16342.  
  16343.         ╨┐  TYPE NUL now "works" (i.e. it generates no output), for 
  16344.            compatibility with batch files which use TYPE NUL > file to generate 
  16345.            a 0-byte file. 
  16346.  
  16347.         ╨┐  Added debugging options which allow you to view the command "tail" 
  16348.            passed to 4OS2, and to "tag" error messages with the product name. 
  16349.            See the Debug directive in 4OS2.INI for additional details. 
  16350.  
  16351.  3.01  ╨┐   Worked around an OS/2 API problem that was causing some batch files 
  16352.            (particularly those with loops and lots of internal commands) to run 
  16353.            very slowly. 
  16354.  
  16355.  3.02  ╨┐   @UNIQUE:  Worked around an OS/2 bug that caused trouble if @UNIQUE 
  16356.            was called repeatedly on a fast machine. 
  16357.  
  16358.  
  16359. ΓòÉΓòÉΓòÉ 12.7. Bugs Fixed ΓòÉΓòÉΓòÉ
  16360.  
  16361. What's New - Bugs Fixed 
  16362.  
  16363.         ╨┐  Piping the output of a batch file which also contains a pipe will no 
  16364.            longer cause problems. 
  16365.  
  16366.         ╨┐  ACTIVATE:  The CLOSE option now works properly. 
  16367.  
  16368.         ╨┐  DESCRIBE:  Fixed a problem with quoted long filenames with paths. 
  16369.  
  16370.         ╨┐  RENAME:  Now works properly when renaming quoted long filenames with 
  16371.            embedded wildcards. 
  16372.  
  16373.         ╨┐  Fixed a problem with invalid drive change requests -- commands like 
  16374.            "1:" would crash 4OS2. 
  16375.  
  16376.         ╨┐  Quoted long filenames can now be used in the .INI file. 
  16377.  
  16378.         ╨┐  @FILESEEKL[] now always returns to the start of the file before 
  16379.            seeking. 
  16380.  
  16381.  3.01  ╨┐   Enabled the NormalPopupKey directive in the .INI file.  Previously 
  16382.            this directive was documented but was only available under its old 
  16383.            name (NormalHWinKey). 
  16384.  
  16385.  3.01  ╨┐   Fixed a problem which caused spurious "nesting level" errors when 
  16386.            the Include directive was used more than three times in the .INI 
  16387.            file. 
  16388.  
  16389.  3.01  ╨┐   Modified popup windows to avoid the situation where the bottom half 
  16390.            of the window is empty when the initially selected line is at the 
  16391.            end of the list. 
  16392.  
  16393.  3.01  ╨┐   CHCP:  Fixed a problem with not redisplaying existing special 
  16394.            characters on the screen. 
  16395.  
  16396.  3.01  ╨┐   DETACH:  Fixed a problem with not expanding variables before running 
  16397.            an external program. 
  16398.  
  16399.  3.01  ╨┐   DEL:  Fixed a problem with /W and 0-byte files. 
  16400.  
  16401.  3.01  ╨┐   DIR:  Fixed several problems, including: 
  16402.  
  16403.            *        /4/Z did not display file sizes ending in ".9M" (1.9M, 
  16404.                     2.9M, etc.) correctly. 
  16405.  
  16406.            *        /J did not display the descriptions. 
  16407.  
  16408.            *        /OGU was ignoring the 'U'; it will now display the files 
  16409.                     unsorted after the directory names. 
  16410.  
  16411.            *        "*.*" was incorrectly being appended to file specifications 
  16412.                     that ended in a question mark. 
  16413.  
  16414.  3.01  ╨┐   DIR:  No longer appends a ".*" to filenames entered on the command 
  16415.            line without an extension (to match CMD.EXE's behavior). 
  16416.  
  16417.  3.01  ╨┐   DO:  Fixed a problem with "LEAVE" not closing the file handle on a 
  16418.            "do var in @filename", and a similar problem with exiting the batch 
  16419.            file with QUIT or CANCEL from inside a DO loop which had a file 
  16420.            open. 
  16421.  
  16422.  3.01  ╨┐   DRAWVLINE:  Fixed a problem with connecting to a horizontal line on 
  16423.            the right side. 
  16424.  
  16425.  3.01  ╨┐   ECHOS:  Fixed a problem with aborting an ECHOS with a Ctrl-C while 
  16426.            in a DO or FOR loop. 
  16427.  
  16428.  3.01  ╨┐   FOR:  Fixed a problem with combining /A:xx and /R, and another 
  16429.            problem with combining /H and /R. 
  16430.  
  16431.  3.01  ╨┐   SELECT:  Fixed a problem with incorrectly adding quotes to short 
  16432.            filenames on long filename drives if they contained a drive spec. 
  16433.  
  16434.  3.01  ╨┐   SWITCH:  Fixed occasional problems with nested SWITCHes. 
  16435.  
  16436.  3.01  ╨┐   _PIPE:  Fixed a problem with this variable not always returning 1 
  16437.            when inside a pipe. 
  16438.  
  16439.  3.01  ╨┐   @EAREAD and @EAWRITE:  Fixed a problem with long filenames. 
  16440.  
  16441.  3.01  ╨┐   @EVAL:  Fixed a bug with maximum-length argument strings. 
  16442.  
  16443.  3.01  ╨┐   @EXPAND[filename[,attributes]]:  Fixed a problem with not adding 
  16444.            quotes to long filenames with embedded whitespace. 
  16445.  
  16446.  3.01  ╨┐   @FILEWRITEB[n,length,string]:  No longer truncates on a write if the 
  16447.            file was opened in binary mode. 
  16448.  
  16449.  3.01  ╨┐   @WORDS[["xxx",]string]:  Fixed a problem if the line began with a -. 
  16450.  
  16451.  3.02  ╨┐   Extended wildcards are now supported inside file exclusion ranges. 
  16452.            (In previous versions the documentation indicated that this support 
  16453.            was available, but it was not.) 
  16454.  
  16455.  3.02  ╨┐   Fixed a problem which prevented filename completion from returning 
  16456.            hidden and system files when these files were enabled in the 
  16457.            FILECOMPLETION variable.  Note that the default filename completion 
  16458.            search does not display hidden and system files, but now if you use 
  16459.            FILECOMPLETION to enable those files for a specific command, they 
  16460.            will be shown as you cycle through files with <Tab>. 
  16461.  
  16462.  3.02  ╨┐   Improved handling of commands using both * (disable alias) and @ 
  16463.            (don't add to command history) at the start. 
  16464.  
  16465.  3.02  ╨┐   @FILES:  Fixed a problem which caused this function to leave a file 
  16466.            handle open, which could cause subsequent "access denied" errors. 
  16467.  
  16468.  3.02  ╨┐   @REPLACE:  Fixed a problem with replacing commas. 
  16469.  
  16470.  3.02  ╨┐   @SELECT:  Fixed a problem with files over 64K. 
  16471.  
  16472.  3.02  ╨┐   CDD: Fixed a problem if TREE was disabled (CDD /S uses TREE to build 
  16473.            the directory index). 
  16474.  
  16475.  3.02  ╨┐   FFIND: Fixed a problem with /C and bracketed wildcards. 
  16476.  
  16477.  3.02  ╨┐   INPUT: Fixed a problem with line input (SETDOS /L1) and the /Ln 
  16478.            switch.  (It was allowing a maximum of "n-1" rather than "n" 
  16479.            characters.) 
  16480.  
  16481.  3.02  ╨┐   LIST: Fixed a problem with highlighting the offsets as well as the 
  16482.            actual found text when in hex mode. 
  16483.  
  16484.  3.02  ╨┐   SWITCH: Fixed minor problems with nested SWITCH statements. 
  16485.  
  16486.  3.02  ╨┐   TEE: Fixed a problem with TEE'ing to CLIP:. 
  16487.  
  16488.  3.02  ╨┐   TOUCH: Fixed a problem with failing to display a usage message when 
  16489.            there were no parameters after a /C, and another problem with 
  16490.            properly detecting invalid times. 
  16491.  
  16492.  3.02  ╨┐   UNALIAS: Fixed a problem with /R. 
  16493.  
  16494.  3.02b  ╨┐  Fixed a problem with piping to external applications. 
  16495.  
  16496.  3.02b  ╨┐  Fixed a problem which occasionally caused spurious "internal error" 
  16497.            crashes. 
  16498.  
  16499.  3.02b  ╨┐  @EXEC:  Fixed a problem which prevented the command from being 
  16500.            executed at all if it was preceded with an @. 
  16501.  
  16502.  2.02b  ╨┐  @MAKEAGE:  Fixed a problem which caused 2-digit dates to be 
  16503.            interpreted based on 1980 rather than 2000 (e.g.  01-01-02 was taken 
  16504.            to mean 1-Jan-1982 rather than the correct value, 1-Jan-2000). 
  16505.  
  16506.  
  16507. ΓòÉΓòÉΓòÉ 13. Reference Information ΓòÉΓòÉΓòÉ
  16508.  
  16509.             File Systems and File Name Conventions 
  16510.             Colors and Color Names 
  16511.             Keys and Key Names 
  16512.             Popup Windows 
  16513.             Executable Files and File Searches 
  16514.             Reference Tables 
  16515.             Glossary 
  16516.  
  16517.  
  16518. ΓòÉΓòÉΓòÉ 13.1. File Systems and File Name Conventions ΓòÉΓòÉΓòÉ
  16519.  
  16520. You may have dozens, hundreds, or thousands of files stored on your computer's 
  16521. disks.  Your operating system is responsible for managing all of these files. 
  16522. In order to do so, it uses a unique name to locate each file in much the same 
  16523. way that the post office assigns a unique address to every residence. 
  16524.  
  16525. The unique name of any file is composed of a drive letter, a directory path, 
  16526. and a filename.  Each of these parts of the file's name is case insensitive; 
  16527. you can mix upper and lower case letters in any way you wish. 
  16528.  
  16529. The topics below are roughly divided according to the different parts of a file 
  16530. name, and cover the file system structure and naming conventions: 
  16531.  
  16532.             Drives and Volumes 
  16533.             File Systems 
  16534.             Directories and Subdirectories 
  16535.             File Names 
  16536.             File Attributes and Time Stamps 
  16537.  
  16538.  
  16539. ΓòÉΓòÉΓòÉ 13.1.1. Drives and Volumes ΓòÉΓòÉΓòÉ
  16540.  
  16541. A drive letter designates which drive contains the file.  In a file's full 
  16542. name, the drive letter is followed by a colon.  Drive letters A: and B: are 
  16543. normally reserved for the floppy disk drives. 
  16544.  
  16545. Normally, drive C: is the first (or only) hard disk drive.  Most current 
  16546. operating systems can divide a large hard disk into multiple logical drives or 
  16547. volumes that are usually called C:, D:, E:, etc.  Network systems (LANs) give 
  16548. additional drive letters to sections of the network file server drives. 
  16549.  
  16550. Most recent systems also include a CD-ROM drive.  The CD-ROM is also assigned a 
  16551. drive letter (or several letters, for CD-ROM changers), typically using letters 
  16552. beyond that used by the last hard disk in the system, but before any network 
  16553. drives.  Some systems may have "RAM disks" (sometimes called "virtual disks"), 
  16554. which are areas of memory set aside by software (a "RAM disk driver") for use 
  16555. as fast but temporary storage.  Like CD-ROM drives, RAM disks are usually 
  16556. assigned drive letters beyond the last hard disk in the system, but before 
  16557. network drives. 
  16558.  
  16559. For example, on a system with a large hard disk you might have A: and B: as 
  16560. floppy drives, C:, D:, and E: as parts of the hard disk, F: as a CD-ROM drive, 
  16561. G: as a RAM disk, and H: and I: as network drives. 
  16562.  
  16563. Each volume is formatted under a particular file system; see File Systems for 
  16564. details.  Additional information about disk files and directories is available 
  16565. under Directories and Subdirectories, File Names, and File Attributes and Time 
  16566. Stamps. 
  16567.  
  16568.  
  16569. ΓòÉΓòÉΓòÉ 13.1.2. File Systems ΓòÉΓòÉΓòÉ
  16570.  
  16571. Each disk volume is organized according to a file system.  The file system 
  16572. determines how files are named and how they are organized on the disk. 
  16573.  
  16574. As hard disk technology and operating systems have evolved, new file systems 
  16575. have been invented to support longer file names, larger drives, and higher disk 
  16576. performance.  Several different and incompatible schemes have evolved.  Which 
  16577. file systems you can use depends on which operating system you are using, and 
  16578. how the operating system and your hard disk are configured. 
  16579.  
  16580. The operating systems under which 4OS2 runs can support two standard file 
  16581. systems:  FAT and HPFS.  See File Names for details on the rules for naming 
  16582. files under each file system. 
  16583.  
  16584.     *   The FAT File System is the traditional file system used by all versions 
  16585.         of DOS.  Its name comes from the File Allocation Table DOS uses to keep 
  16586.         track of the space allocated to each file.  Windows 95, Windows NT, and 
  16587.         OS/2 also support the FAT file system. 
  16588.  
  16589.     *   The High Performance File System or HPFS is a file system provided with 
  16590.         all versions of OS/2, and is also supported in Windows NT version 3.51 
  16591.         and below.  It supports long file names, and offers higher performance 
  16592.         and better support for large drives than the FAT system.  It also 
  16593.         supports "extended attributes" to retain additional information about 
  16594.         your files. 
  16595.  
  16596.         DOS sessions running under OS/2 can access files on HPFS drives if the 
  16597.         files have short, FAT-compatible names.  Other operating systems (DOS, 
  16598.         Windows 95, and Windows NT 4.0 and above) can not access files on HPFS 
  16599.         drives. 
  16600.  
  16601.  Additional file systems may be installed under some operating systems to 
  16602.  support CD-ROM or network drives.  The file system type (FAT or HPFS) is 
  16603.  determined when a hard disk volume is formatted and applies to the entire 
  16604.  volume.  For example, under OS/2 you might have a 2 GB hard disk divided into 
  16605.  four 500 MB volumes, with the first three volumes (C:, D:, and E:) formatted 
  16606.  for the FAT file system, and the fourth formatted for HPFS. 
  16607.  
  16608.  4OS2 supports any standard file system installed under your operating system. 
  16609.  If your operating system can access files on a particular drive, then 4OS2 
  16610.  will be able to access those files as well. 
  16611.  
  16612.  Additional information about disk files and directories is available under 
  16613.  Drives and Volumes, Directories and Subdirectories, File Names, and File 
  16614.  Attributes and Time Stamps. 
  16615.  
  16616.  Network File Systems 
  16617.  
  16618.  A network file system allows you to access files stored on another computer on 
  16619.  a network, rather than on your own system.  4OS2 supports all network file 
  16620.  systems which are compatible with the underlying operating system. 
  16621.  
  16622.  File and directory names for network file systems depend on both the "server" 
  16623.  software running on the system that has the files on it, and the "client" 
  16624.  software running on your computer to connect it to the network.  However, they 
  16625.  usually follow the rules described under File Names. 
  16626.  
  16627.  Most network software "maps" unused drive letters on your system to specific 
  16628.  locations on the network, and you can then treat the drive as if it were 
  16629.  physically part of your local computer. 
  16630.  
  16631.  Some networks also support the Universal Naming Convention, which provides a 
  16632.  common method for accessing files on a network drive without using a "mapped" 
  16633.  drive letter.  Names specified this way are called UNC names.  They typically 
  16634.  appear as \\server\volume\path\filename, where server is the name of the 
  16635.  network server where the files reside, volume is the name of a disk volume on 
  16636.  that server, and the path\filename portion is a directory name and file name 
  16637.  which follow the conventions described in Directories and Subdirectories. 
  16638.  4OS2 supports UNC filenames, and also allows you to use UNC directory names 
  16639.  when changing directories (see Directory Navigation for more details). 
  16640.  
  16641.  When you use a network file system, remember that the naming conventions for 
  16642.  files on the network may not match those on your local system.  For example, 
  16643.  your local system may support long filenames while the network server or 
  16644.  client software does not, or vice versa.  4OS2 will usually handle whatever 
  16645.  naming conventions are supported by your network software, as long as the 
  16646.  network software accurately reports the types of names it can handle. 
  16647.  
  16648.  In rare cases, 4OS2 may not be able to report correct statistics on network 
  16649.  drives (such as the number of bytes free on a drive).  This is usually because 
  16650.  the network file system does not provide complete or accurate information. 
  16651.  
  16652.  
  16653. ΓòÉΓòÉΓòÉ 13.1.3. ┬áDirectories and Subdirectories ΓòÉΓòÉΓòÉ
  16654.  
  16655. A file system is a method of organizing all of the files on an entire disk or 
  16656. hard disk volume.  Directories are used to divide the files on a disk into 
  16657. logical groups that are easy to work with.  Their purpose is similar to the use 
  16658. of file drawers to contain groups of hanging folders, hanging folders to 
  16659. contain smaller manila folders, and so on.  Directories are also sometimes 
  16660. referred to as folders. 
  16661.  
  16662. Every drive has a root or base directory, and many have one or more 
  16663. subdirectories.  Subdirectories can also have subdirectories, extending in a 
  16664. branching tree structure from the root directory.  The collection of all 
  16665. directories on a drive is often called the directory tree, and a portion of the 
  16666. tree is sometimes called a subtree.  The terms directory and subdirectory are 
  16667. typically used interchangeably to mean a single subdirectory within this tree 
  16668. structure. 
  16669.  
  16670. Subdirectory names follow the same rules as file names (see File Names). 
  16671.  
  16672. The drive and subdirectory portion of a file's name are collectively called the 
  16673. file's path.  For example, the file name C:\DIR1\DIR2\MYFILE.DAT says to look 
  16674. for the file MYFILE.DAT in the subdirectory DIR2 which is part of the 
  16675. subdirectory DIR1 which is on drive C.  The path for MYFILE.DAT is 
  16676. C:\DIR1\DIR2.  The backslashes between subdirectory names are required.  On 
  16677. HPFS volumes the path and file name must each be 255 characters or less in 
  16678. length, and in addition the total length of the path and file name together 
  16679. cannot exceed 260 characters. 
  16680.  
  16681. The operating system and command processor remember both a current or default 
  16682. drive for your system as a whole, and a current or default directory for every 
  16683. drive in your system.  Whenever a program tries to create or access a file 
  16684. without specifying the file's path, the operating system uses the current drive 
  16685. (if no other drive is specified) and the current directory (if no other 
  16686. directory path is specified). 
  16687.  
  16688. The root directory is named using the drive letter and a single backslash.  For 
  16689. example, D:\ refers to the root directory of drive D:.  Using a drive letter 
  16690. with no directory name at all refers to the current directory on the specified 
  16691. drive.  For example, E:README.DOC refers to the file README.DOC in the current 
  16692. directory on drive E:, whereas E:\README.DOC refers to the file README.DOC in 
  16693. the root directory on drive E:. 
  16694.  
  16695. There are also two special subdirectory names that are useful in many 
  16696. situations:  a single period by itself [.] means "the current default 
  16697. directory."  Two periods together [..] means "the directory which contains the 
  16698. current default directory" (often referred to as the parent directory).  These 
  16699. special names can be used wherever a full directory name can be used.  4OS2 
  16700. allows you to use additional periods to specify directories further "up" the 
  16701. tree (see Extended Parent Directory Names). 
  16702.  
  16703. Additional information about disk files and file systems is available under 
  16704. Drives and Volumes, File Systems, File Names, and File Attributes and Time 
  16705. Stamps. 
  16706.  
  16707.  
  16708. ΓòÉΓòÉΓòÉ 13.1.4. File Names ΓòÉΓòÉΓòÉ
  16709.  
  16710. Under the FAT file system, the filename consists of a base name of 1 to 8 
  16711. characters plus an optional extension composed of a period plus 1 to 3 more 
  16712. characters. 
  16713.  
  16714. You can use alphabetic and numeric characters plus the punctuation marks ! # $ 
  16715. % & ' ( ) - @ ^ _ ` { } and ~ in both the base name and the extension of a FAT 
  16716. filename.  Because the exclamation point [!], percent sign [%], caret [^], at 
  16717. sign [@], parentheses [()], and back-quote [`] also have other meanings to 
  16718. 4OS2, it is best to avoid using them in filenames. 
  16719.  
  16720. The HPFS file system allows file names with a maximum of 255 characters, 
  16721. including spaces and other characters that are not allowed in a FAT system file 
  16722. name, but excluding some punctuation characters which are allowed in FAT file 
  16723. names.  See your operating system documentation for details on the characters 
  16724. allowed.  If you use file names which contain semicolons [;], see Wildcards for 
  16725. details on avoiding problems with interpretation of those file names under 
  16726. 4OS2. 
  16727.  
  16728. HPFS file names are stored and displayed exactly as you entered them, and are 
  16729. not automatically shifted to upper or lower case.  For example, you could 
  16730. create a file called MYFILE, myfile, or MyFile, and each name would be stored 
  16731. in the directory just as you entered it.  However, case is ignored when looking 
  16732. for filenames, so you cannot have two files whose names differ only in case 
  16733. (i.e., the three names given above would all refer to the same file).  This 
  16734. behavior is sometimes described as "case-retentive but not case-sensitive" 
  16735. because the case information is retained, but does not affect access to the 
  16736. files. 
  16737.  
  16738. Files stored on HPFS volumes often have "FAT-compatible" names:  names which 
  16739. contain only those characters legal on a FAT volume, and which meet the 
  16740. 8-character name / 3-character extension limits.  Programs which cannot handle 
  16741. long names generally can access files by using FAT-compatible names. 
  16742.  
  16743. If an HPFS-compatible file name includes spaces or other characters that would 
  16744. not be allowed in a FAT name, you must place double quotes around the name. 
  16745. For example, suppose you have a file named LET3 on a FAT volume, and you want 
  16746. to copy it to the LETTERS directory on drive F:, an HPFS partition, and give it 
  16747. the name Letter To Sara.  To do so, use either of these commands: 
  16748.  
  16749.         [c:\wp] copy let3 f:\LETTERS\"Letter To Sara"
  16750.  
  16751.         [c:\wp] copy let3 "f:\LETTERS\Letter To Sara"
  16752.  
  16753. The HPFS file systems do not explicitly define an "extension" for file names 
  16754. which are not FAT-compatible.  However, by convention, all characters after the 
  16755. last period in the file name are treated as the extension.  For example, the 
  16756. file name "Letter to Sara" has no extension, whereas the name "Letter.to.Sara" 
  16757. has the extension Sara. 
  16758.  
  16759. Additional information about disk files and file systems is available under 
  16760. Drives and Volumes, File Systems, Directories and Subdirectories, and File 
  16761. Attributes and Time Stamps. 
  16762.  
  16763.  
  16764. ΓòÉΓòÉΓòÉ 13.1.5. File Attributes and Time Stamps ΓòÉΓòÉΓòÉ
  16765.  
  16766. Each file also has attributes, and one or more time stamps.  Attributes define 
  16767. characteristics of the file which may be useful to the operating system, to 
  16768. you, or to an application program.  Time stamps can record when the file was 
  16769. created, last modified, or last accessed.  Most 4OS2 file processing commands 
  16770. allow you to select files for processing based on their attributes and/or time 
  16771. stamp(s). 
  16772.  
  16773. Each file on your system has four standard attributes.  Every time a program 
  16774. modifies a file, the operating system sets the Archive attribute, which signals 
  16775. that the file has been modified since it was last backed up.  This attribute 
  16776. can be used by 4OS2 to determine which files to COPY, and by backup programs to 
  16777. determine which files to back up.  When the Read-only attribute is set, the 
  16778. file can't be changed or erased accidentally; this can be used to help protect 
  16779. important files from damage.  The Hidden and System attributes prevent the file 
  16780. from appearing in normal directory listings.  (Two additional attributes, 
  16781. Directory and Volume label, are also available.  These attributes are 
  16782. controlled by the operating system, and are not modified directly by 4OS2.) 
  16783.  
  16784. Attributes can be set and viewed with the ATTRIB command.  The DIR command also 
  16785. has options to select filenames to view based on their attributes, to view the 
  16786. attributes themselves, and to view information about normally "invisible" 
  16787. hidden and system files. 
  16788.  
  16789. When a file is created, and every time it is modified, the operating system 
  16790. records the system time and date in a time stamp in the file's directory entry. 
  16791. Several 4OS2 commands and variable functions, and many backup and utility 
  16792. programs, use this time stamp to determine the relative ages of files. 
  16793.  
  16794. On FAT volumes, only the single time stamp described above is available.  Files 
  16795. on HPFS volumes have three sets of time and date stamps.  The operating system 
  16796. records when each file was created, when it was last written or modified, and 
  16797. when it was last accessed.  The "last write" time stamp matches the single time 
  16798. stamp used on traditional FAT volumes. 
  16799.  
  16800. Several 4OS2 commands and variable functions let you specify which set of time 
  16801. and date stamps you want to view or work with on HPFS volumes.  These commands 
  16802. and functions use the letter c to refer to the creation time stamp, w for the 
  16803. last write time stamp, and a for the last access time stamp. 
  16804.  
  16805. Additional information about disk files and file systems is available under 
  16806. Drives and Volumes, File Systems, Directories and Subdirectories, and File 
  16807. Names. 
  16808.  
  16809.  
  16810. ΓòÉΓòÉΓòÉ 13.2. Miscellaneous Reference Information ΓòÉΓòÉΓòÉ
  16811.  
  16812.             Colors and Color Names 
  16813.             Keys and Key Names 
  16814.             Popup Windows 
  16815.             Executable Files and File Searches 
  16816.  
  16817.  
  16818. ΓòÉΓòÉΓòÉ 13.2.1. Colors and Color Names ΓòÉΓòÉΓòÉ
  16819.  
  16820. You can use color names in several of the directives in the .INI file and in 
  16821. many commands.  The general form of a color name is: 
  16822.  
  16823.     [BRIght] [BLInk] fg ON [BRIght] bg [BORder bc ] 
  16824.  
  16825. where fg is the foreground or text color, bg is the background color, and bc is 
  16826. the border color. 
  16827.  
  16828. The available colors are: 
  16829.  
  16830.         Black           Blue            Green           Red
  16831.         Magenta         Cyan            Yellow          White
  16832.  
  16833. Color names and the words BRIght, BLInk, and BORder may be shortened to the 
  16834. first 3 letters. 
  16835.  
  16836. You can also specify colors by number instead of by name.  The numbers are most 
  16837. useful in potentially long .INI file directives like ColorDir, where using 
  16838. color names may take too much space.  The following numbers are recognized: 
  16839.  
  16840.         0 - Black       8 - Gray (bright black)
  16841.         1 - Blue        9 - Bright blue
  16842.         2 - Green      10 - Bright green
  16843.         3 - Cyan       11 - Bright cyan
  16844.         4 - Red        12 - Bright red
  16845.         5 - Magenta    13 - Bright magenta
  16846.         6 - Yellow     14 - Bright yellow
  16847.         7 - White      15 - Bright white
  16848.  
  16849. Use one number to substitute for the [BRIght] fg portion of the color name, and 
  16850. a second to substitute for the [BRIght] bg portion.  For example, instead of 
  16851. bright cyan on blue you could use 11 on 1 to save space in a ColorDir 
  16852. specification. 
  16853.  
  16854. There are several subtleties that complicate the use of colors and color names. 
  16855. In order to understand them, you will need to read through the restrictions 
  16856. described below.  These restrictions are due to the design of your PC video 
  16857. hardware and video drivers, and are not inherent in 4OS2.  Some of the 
  16858. restrictions are complex, so feel free to skip over those that do not apply to 
  16859. color combinations you use. 
  16860.  
  16861. Some restrictions depend on the display "mode."  4OS2 can run in either 
  16862. full-screen display mode, where it uses the entire screen and has more direct 
  16863. control over the video hardware; or in windowed display mode, where it appears 
  16864. in a window on the OS/2 desktop. 
  16865.  
  16866. Color Errors 
  16867.  
  16868. A standard color specification allows sixteen foreground and eight background 
  16869. colors (sixteen if bright backgrounds are enabled, see below).  However, most 
  16870. video adapters and monitors do not provide true renditions of certain colors. 
  16871. For example, most users see normal "yellow" as brown, and bright yellow as 
  16872. yellow; many also see normal red as red, and "bright red" as pink.  Color 
  16873. errors are often much worse when running in windowed mode (see above), because 
  16874. the graphical environment that created the window may not map the text-mode 
  16875. colors the way you expect.  These problems are inherent in the monitor, video 
  16876. adapter, and driver software.  They cannot be corrected using 4OS2 color 
  16877. specifications. 
  16878.  
  16879. Border Colors 
  16880.  
  16881. In order to use border colors, you must have a color video adapter (monochrome 
  16882. adapters do not support border colors). 
  16883.  
  16884. 4OS2 can only accept border colors in the CLS and COLOR commands, and in the 
  16885. StdColors directive in the .INI file.  Border colors will be ignored, or will 
  16886. cause an error, if they are used elsewhere. 
  16887.  
  16888. Border colors do not work in windowed mode, and will be ignored if used in a 
  16889. windowed session under OS/2. 
  16890.  
  16891. Blinking Text and Bright Background Colors 
  16892.  
  16893. The interactions between blinking characters, bright backgrounds, and your 
  16894. display mode can be complex.  You will need to understand them if you use 
  16895. either attribute in your color specifications. 
  16896.  
  16897. The effects of blinking and bright background color specifications depend 
  16898. partly on whether you are in full-screen or windowed display mode. 
  16899.  
  16900. Full-Screen Display Mode 
  16901.  
  16902. Full-screen display mode uses the entire screen for your command processor or 
  16903. application.  This mode is available as an option for text-mode sessions in 
  16904. OS/2. 
  16905.  
  16906. In full-screen display mode your video hardware can be configured via software 
  16907. commands to display either blinking text, or text with a bright background, but 
  16908. not both.  This is due to the design of PC video hardware, and is not a 
  16909. software restriction. 
  16910.  
  16911. The memory on your video adapter includes a "flag" for each character on the 
  16912. screen.  The flag controls blinking text and bright background colors.  If the 
  16913. flag is off, the character is displayed with a normal background and does not 
  16914. blink.  If the flag is "on," the character either blinks or is displayed with a 
  16915. bright background, depending on which way your video adapter is currently 
  16916. configured. 
  16917.  
  16918. In full-screen display mode, the configuration of your video adapter can be 
  16919. controlled by 4OS2 with the BrightBG directive in the 4OS2.INI file or the 
  16920. SETDOS /B command.  If you set BrightBG = No or use the SETDOS /B0 command, 
  16921. 4OS2 will configure the video adapter for blinking text, and all characters on 
  16922. the screen with the blink / bright background flag set will blink.  If you set 
  16923. BrightBG = Yes or use SETDOS /B1, 4OS2 will configure the video adapter for 
  16924. bright background colors, and the characters will be displayed with a bright 
  16925. background instead of blinking. 
  16926.  
  16927. Because there is only one flag for each character to specify both blinking text 
  16928. and bright background color, it doesn't matter which attribute you use when you 
  16929. specify the color.  Whether you specify blinking text or a bright background, 
  16930. you will see the same thing on your screen.  For example, these two COLOR 
  16931. commands will always produce the same results: 
  16932.  
  16933.         color blink white on blue
  16934.         color white on bright blue
  16935.  
  16936. If bright backgrounds are enabled, both commands will produce white text on a 
  16937. bright blue background.  If blinking text is enabled, both commands will 
  16938. produce blinking white text on a blue background. 
  16939.  
  16940. If you don't use BrightBG or SETDOS /B, or if you use SETDOS /B2, 4OS2 will not 
  16941. attempt to configure your video hardware.  Most video adapters default to 
  16942. blinking text in full-screen mode, but this can be changed by application 
  16943. programs.  If you use BrightBG or SETDOS /B, 4OS2 will configure the hardware 
  16944. each time it displays the prompt. 
  16945.  
  16946. Windowed Display Mode 
  16947.  
  16948. Windowed display mode uses a window on the screen for your command processor or 
  16949. text-mode application.  It is available for command processor sessions and most 
  16950. applications running under OS/2. 
  16951.  
  16952. In windowed mode, 4OS2 cannot control your hardware to select blinking or 
  16953. bright backgrounds.  Instead, OS/2 displays bright background colors, 
  16954. regardless of the BrightBG or SETDOS /B setting.  It does not provide a way to 
  16955. display blinking characters in windowed mode.  As an example, the two commands 
  16956. given above would both display white text on a bright blue background when run 
  16957. in windowed mode. 
  16958.  
  16959. Switching Modes 
  16960.  
  16961. OS/2 allows you to switch any DOS or other text-mode session between 
  16962. full-screen and windowed mode.  You cannot switch modes for OS/2 sessions, so 
  16963. 4OS2 is not directly affected by mode switching.  However, if you write batch 
  16964. files or aliases which run in both modes, you may need to take into account 
  16965. that OS/2 defaults to displaying blinking text in full-screen mode and bright 
  16966. backgrounds in windowed mode. 
  16967.  
  16968.  
  16969. ΓòÉΓòÉΓòÉ 13.2.2. Keys and Key Names ΓòÉΓòÉΓòÉ
  16970.  
  16971. Key names are used to define keystroke aliases, and in several 4OS2.INI 
  16972. directives, and with the KEYSTACK command.  The format of a key name is the 
  16973. same in all three uses: 
  16974.  
  16975.         [Prefix-]Keyname
  16976.  
  16977. The key prefix can be left out, or it can be any one of the following: 
  16978.  
  16979.         Alt         followed by A - Z, 0 - 9, F1 - F12, or Bksp
  16980.         Ctrl        followed by A - Z, F1 - F12, Tab, Bksp, Enter,
  16981.                       Left, Right, Home, End, PgUp, PgDn, Ins, or Del
  16982.         Shift       followed by F1 - F12 or Tab.
  16983.  
  16984. The possible key names are: 
  16985.  
  16986.         A - Z           Enter           PgDn
  16987.         0 - 9           Up              Home
  16988.         F1 - F          Down            End
  16989.         Esc             Left            Ins
  16990.         Bksp            Right           Del
  16991.         Tab             PgUp
  16992.  
  16993. All key names must be spelled as shown.  Alphabetic keys can be specified in 
  16994. upper or lower case.  You cannot specify a punctuation key. 
  16995.  
  16996. The prefix and key name must be separated by a dash [-].  For example: 
  16997.  
  16998.         Alt-F10        This is okay
  16999.         Alt F10        The space will cause an error
  17000.  
  17001. If you prefer, you can use a numeric value instead of a key name. Use the ASCII 
  17002. code for an ASCII, extended ASCII, or control character.  Use the scan code 
  17003. preceded by an at sign [@] for extended key codes like F1 or the cursor keys. 
  17004. For example, use 13 for Enter, or @59 for F1.  In general, you will find it 
  17005. easier to use the names described above rather than key numbers. See the 
  17006. Reference Tables for an explanation and list of ASCII and key codes. 
  17007.  
  17008. Some keys are intercepted by OS/2 and are not passed on to 4OS2.  For example, 
  17009. Ctrl-S pauses screen output temporarily, and Ctrl-Esc pops up the OS/2 window 
  17010. list.  Keys which are intercepted by OS/2 generally cannot be assigned to 
  17011. aliases or with key mapping directives, because 4OS2 never receives these 
  17012. keystrokes and therefore cannot act on them. 
  17013.  
  17014. You also may not be able to use certain keys if your keyboard is not 100% 
  17015. IBM-compatible or your keyboard driver does not support them.  For example, on 
  17016. some systems the F11 and F12 keys are not recognized; others may not support 
  17017. unusual combinations like Ctrl-Tab.  These problems are rare; when they do 
  17018. occur, they are usually due to OS/2. 
  17019.  
  17020.  
  17021. ΓòÉΓòÉΓòÉ 13.2.3. Popup Windows ΓòÉΓòÉΓòÉ
  17022.  
  17023. Several features of 4OS2 display popup windows.  A popup window may be used to 
  17024. display filenames, recently-executed commands, recently-used directories, the 
  17025. results of an extended directory search, or a list created by the SELECT 
  17026. command or the @SELECT internal function. 
  17027.  
  17028. Popup windows always display a list of choices and a cursor bar.  You can move 
  17029. the cursor bar inside the window until you find the choice that you wish to 
  17030. make, then press the Enter key to select that item. 
  17031.  
  17032. Navigation inside any popup window follows the conventions described below. 
  17033. Additional information on each specific type of popup window is provided when 
  17034. that window is introduced in the online help. 
  17035.  
  17036. You can control the color, position and size of most popup windows from the 
  17037. Command Line 2 page of the OPTION dialogs.  You can also control these features 
  17038. with directives in the .INI file, including PopupWinLeft, PopupWinTop, 
  17039. PopupWinWidth, and PopupWinHeight, and PopupWinColors.  A few popup windows 
  17040. (e.g., the extended directory search window) have their own specific .INI 
  17041. directives, and corresponding separate choices in the OPTION command.  You can 
  17042. also change the keys used in most popup windows with key mapping directives in 
  17043. 4OS2.INI. 
  17044.  
  17045. Once a window is open, you can use these navigation keys to find the selection 
  17046. you wish to make: 
  17047.  
  17048.                        Move the selection bar up one line. 
  17049.                        Move the selection bar down one line. 
  17050.                        Scroll the display left 4 columns. 
  17051.                        Scroll the display right 4 columns. 
  17052.         PgUp            Scroll the display up one page. 
  17053.         PgDn            Scroll the display down one page. 
  17054.         Ctrl-PgUp       Go to the beginning of the list. 
  17055.          or Home 
  17056.         Ctrl-PgDn       Go to the end of the list. 
  17057.          or End 
  17058.         Esc             Close the window without making a selection. 
  17059.         Enter           Select the current item and close the window. 
  17060.  
  17061.  In addition to scrolling through a popup window, you can search the list using 
  17062.  character matching.  If you press a character, the cursor bar will move to the 
  17063.  next entry that begins with that character.  If you type multiple characters, 
  17064.  the cursor will move to the entry that begins with the search string entered 
  17065.  to that point (you can enter a search string up to 32 characters long).  If no 
  17066.  entry matches the character or string that you have typed, the command 
  17067.  processor beeps and does not move the cursor bar.  To reset the search string, 
  17068.  press Backspace. 
  17069.  
  17070.  You can change the keys used in popup windows with key mapping directives in 
  17071.  4OS2.INI file. 
  17072.  
  17073.  
  17074. ΓòÉΓòÉΓòÉ 13.2.4. Executable Files and File Searches ΓòÉΓòÉΓòÉ
  17075.  
  17076. Once 4OS2 knows that it is supposed to run an external command, it tries to 
  17077. find an executable file (one with a .COM or .EXE extension) whose name matches 
  17078. the command name.  It runs the executable file if it finds one. 
  17079.  
  17080. If 4OS2 cannot find an executable program to run, it next looks for a batch 
  17081. file (a file with one or more commands in it) whose name matches the command 
  17082. name.  4OS2 looks first for a .BTM file, then for a .CMD file, then for a .BAT 
  17083. file, and finally for a .REX file.  See .BAT, .CMD, and .BTM Files for more 
  17084. information on these different types of batch files.  If 4OS2 finds such a 
  17085. file, it then reads each line in the file as a new command. 
  17086.  
  17087. If the search for a batch file fails, 4OS2 checks to see if the command name 
  17088. matches the name of a file with an extension that is associated with a specific 
  17089. application (for example, if you have associated .DOC with your editor or word 
  17090. processor, and you type the name of a .DOC file).  If a match is found, 4OS2 
  17091. runs the program you specified when the association was defined. 
  17092.  
  17093. In searching for the application associated with a file, 4OS2 will first 
  17094. examine any executable extensions you have defined to associate a file 
  17095. extension with a specific program to process that type of file. 
  17096.  
  17097. 4OS2 first searches for an executable program, a batch file, and a file with an 
  17098. executable extension in the current directory.  If the command name doesn't 
  17099. match a .COM, .EXE, .BTM, .BAT or .CMD file or an executable extension in the 
  17100. current directory, 4OS2 repeats its search in every directory in your search 
  17101. path. 
  17102.  
  17103. The search path is a list of directories that 4OS2 (and some applications) 
  17104. search for executable files.  For example, if you wanted 4OS2 to search the 
  17105. root directory of the C: drive, the \OS2 subdirectory on the C: drive, and the 
  17106. \UTIL directory on the D: drive for executable files, your search path would 
  17107. look like this: 
  17108.  
  17109.         PATH=C:\;C:\OS2;D:\UTIL
  17110.  
  17111. Notice that the directory names in the search path are separated by semicolons. 
  17112.  
  17113. You can create or view the search path with the PATH command.  You can use the 
  17114. ESET command to edit the path.  Many programs also use the search path to find 
  17115. their own files.  The search path is stored in the environment with the name 
  17116. PATH. 
  17117.  
  17118. Remember, 4OS2 always looks for an executable file or a file with an executable 
  17119. extension in the current subdirectory, then in each directory in the search 
  17120. path.  (You can change the search order so the current directory is not 
  17121. searched first; see the PATH command for details.) 
  17122.  
  17123. If you include an extension as part of the command name, 4OS2 only searches for 
  17124. a file with that extension.  Similarly, if you include a path as part of the 
  17125. command name, the command processor will look only in the directory you 
  17126. specified, and ignore the usual search of the current directory and the PATH. 
  17127.  
  17128. The following table sums up the possible search options (the term "standard 
  17129. search" refers to the search of the current directory and each directory in the 
  17130. search path): 
  17131.  
  17132.         Command                 4OS2 Search Sequence 
  17133.  
  17134.         WP                      Standard search for any executable file whose 
  17135.                                 base name is WP. 
  17136.  
  17137.         WP.EXE                  Standard search for WP.EXE; will not find files 
  17138.                                 with other extensions. 
  17139.  
  17140.         C:\WP7\WP               Looks in the C:\WP7 directory for any 
  17141.                                 executable file whose base name is WP.  Does 
  17142.                                 not check the standard search directories. 
  17143.  
  17144.         C:\WP7\WP.EXE           Looks only for the file C:\WP7\WP.EXE. 
  17145.  
  17146.         LAB.DOC                 Standard search for LAB.DOC, if .DOC is defined 
  17147.                                 as an executable extension.  Runs the 
  17148.                                 associated application if the file is found. 
  17149.  
  17150.         C:\LI\LAB.DOC           Looks only for the file C:\LI\LAB.DOC, and only 
  17151.                                 if .DOC is defined as an executable extension. 
  17152.                                 Runs the associated application if the file is 
  17153.                                 found. 
  17154.  
  17155.  If 4OS2 cannot find an executable file, batch program, or a file with an 
  17156.  executable extension in the current directory or any directory in the search 
  17157.  path, it looks for an alias called UNKNOWN_CMD (see the ALIAS command for 
  17158.  details).  If you have defined an alias with that name, it is executed (this 
  17159.  allows you to control error handling for unknown commands).  Otherwise, 4OS2 
  17160.  displays an "Unknown command" error message and waits for your next 
  17161.  instruction. 
  17162.  
  17163.  
  17164. ΓòÉΓòÉΓòÉ 13.3. Reference Tables ΓòÉΓòÉΓòÉ
  17165.  
  17166. The reference tables in this section are based on U.S. English conventions. 
  17167. Your system may differ if it is configured for a different country or language, 
  17168. or a character set or display font which does not include the characters shown 
  17169. here.  See your operating system documentation for more information about 
  17170. country and language support. 
  17171.  
  17172. To represent the text you type, computers must translate each letter to and 
  17173. from a number.  The code used by all PC-compatible computers for this 
  17174. translation is called ASCII (American Standard Code for Information 
  17175. Interchange).  Function keys, cursor keys, and Alt keys generate scan codes 
  17176. indicating which key was pressed, but not ASCII codes.  The tables in this 
  17177. section cover both kinds of codes. 
  17178.  
  17179. For more information, see: 
  17180.  
  17181.             ASCII Table 
  17182.             Key Codes and Scan Codes Table 
  17183.             Key Codes and Scan Codes Explanation 
  17184.             ANSI Commands 
  17185.  
  17186.  
  17187. ΓòÉΓòÉΓòÉ 13.3.1. ASCII Table ΓòÉΓòÉΓòÉ
  17188.  
  17189. The ASCII tables below include a Char column showing the visual representation 
  17190. of the character, a Dec column showing the decimal numeric value of the 
  17191. character in the ASCII set, and a Hex column showing the hexadecimal (base-16) 
  17192. value. 
  17193.  
  17194.                   Control Characters
  17195.  
  17196.     Dec  Hex  Chr  Nam  Ctl   Γöé   Dec  Hex  Chr  Nam  Ctl
  17197.     ---  ---  ---  ---  ---   Γöé   ---  ---  ---  ---  ---
  17198.     000   00       NUL   ^@   Γöé   016   10      DLE   ^P
  17199.     001   01      SOH   ^A   Γöé   017   11      DC1   ^Q
  17200.     002   02      STX   ^B   Γöé   018   12      DC2   ^R
  17201.     003   03      ETX   ^C   Γöé   019   13      DC3   ^S
  17202.     004   04      EOT   ^D   Γöé   020   14      DC4   ^T
  17203.     005   05      ENQ   ^E   Γöé   021   15      NAK   ^U
  17204.     006   06      ACK   ^F   Γöé   022   16      SYN   ^V
  17205.     007   07       BEL   ^G   Γöé   023   17      ETB   ^W
  17206.     008   08      BS    ^H   Γöé   024   18      CAN   ^X
  17207.     009   09       HT    ^I   Γöé   025   19      EM    ^Y
  17208.     010   0A       LF    ^J   Γöé   026   1A      SUB   ^Z
  17209.     011   0B       VT    ^K   Γöé   027   1B      ESC   ^[
  17210.     012   0C       FF    ^L   Γöé   028   1C      FS    ^\
  17211.     013   0D       CR    ^M   Γöé   029   1D      GS    ^]
  17212.     014   0E      SO    ^N   Γöé   030   1E      RS    ^^
  17213.     015   0F      SI    ^O   Γöé   031   1F      US    ^_
  17214.  
  17215.               Punctuation, Digits, Upper Case
  17216.  
  17217.   Dec  Hex  Chr Γöé  Dec  Hex  Chr Γöé  Dec  Hex  Chr Γöé  Dec  Hex  Chr
  17218.   ---  ---  --- Γöé  ---  ---  --- Γöé  ---  ---  --- Γöé  ---  ---  ---
  17219.   032   20      Γöé  048   30   0  Γöé  064   40   @  Γöé  080   50   P
  17220.   033   21   !  Γöé  049   31   1  Γöé  065   41   A  Γöé  081   51   Q
  17221.   034   22   "  Γöé  050   32   2  Γöé  066   42   B  Γöé  082   52   R
  17222.   035   23   #  Γöé  051   33   3  Γöé  067   43   C  Γöé  083   53   S
  17223.   036   24   $  Γöé  052   34   4  Γöé  068   44   D  Γöé  084   54   T
  17224.   037   25   %  Γöé  053   35   5  Γöé  069   45   E  Γöé  085   55   U
  17225.   038   26   &  Γöé  054   36   6  Γöé  070   46   F  Γöé  086   56   V
  17226.   039   27   '  Γöé  055   37   7  Γöé  071   47   G  Γöé  087   57   W
  17227.   040   28   (  Γöé  056   38   8  Γöé  072   48   H  Γöé  088   58   X
  17228.   041   29   )  Γöé  057   39   9  Γöé  073   49   I  Γöé  089   59   Y
  17229.   042   2A   *  Γöé  058   3A   :  Γöé  074   4A   J  Γöé  090   5A   Z
  17230.   043   2B   +  Γöé  059   3B   ;  Γöé  075   4B   K  Γöé  091   5B   [
  17231.   044   2C   ,  Γöé  060   3C   <  Γöé  076   4C   L  Γöé  092   5C   \
  17232.   045   2D   -  Γöé  061   3D   =  Γöé  077   4D   M  Γöé  093   5D   ]
  17233.   046   2E   .  Γöé  062   3E   >  Γöé  078   4E   N  Γöé  094   5E   ^
  17234.   047   2F   /  Γöé  063   3F   ?  Γöé  079   4F   O  Γöé  095   5F   _
  17235.  
  17236.                 Lower Case, Miscellaneous
  17237.  
  17238.                  Dec  Hex  Chr Γöé  Dec  Hex  Chr
  17239.                  ---  ---  --- Γöé  ---  ---  ---
  17240.                  096   60   `  Γöé  112   70   p
  17241.                  097   61   a  Γöé  113   71   q
  17242.                  098   62   b  Γöé  114   72   r
  17243.                  099   63   c  Γöé  115   73   s
  17244.                  100   64   d  Γöé  116   74   t
  17245.                  101   65   e  Γöé  117   75   u
  17246.                  102   66   f  Γöé  118   76   v
  17247.                  103   67   g  Γöé  119   77   w
  17248.                  104   68   h  Γöé  120   78   x
  17249.                  105   69   i  Γöé  121   79   y
  17250.                  106   6A   j  Γöé  122   7A   z
  17251.                  107   6B   k  Γöé  123   7B   {
  17252.                  108   6C   l  Γöé  124   7C   |
  17253.                  109   6D   m  Γöé  125   7D   }
  17254.                  110   6E   n  Γöé  126   7E   ~
  17255.                  111   6F   o  Γöé  127   7F   
  17256.  
  17257.             International; Graphics Characters 1
  17258.  
  17259.   Dec  Hex  Chr Γöé  Dec  Hex  Chr Γöé  Dec  Hex  Chr Γöé  Dec  Hex  Chr
  17260.   ---  ---  --- Γöé  ---  ---  --- Γöé  ---  ---  --- Γöé  ---  ---  ---
  17261.   128   80   ╨É  Γöé  144   90   ╨á  Γöé  160   A0   ╨░  Γöé  176   B0   Γûæ
  17262.   129   81   ╨æ  Γöé  145   91   ╨í  Γöé  161   A1   ╨▒  Γöé  177   B1   ΓûÆ
  17263.   130   82   ╨Æ  Γöé  146   92   ╨ó  Γöé  162   A2   ╨▓  Γöé  178   B2   Γûô
  17264.   131   83   ╨ô  Γöé  147   93   ╨ú  Γöé  163   A3   ╨│  Γöé  179   B3   Γöé
  17265.   132   84   ╨ö  Γöé  148   94   ╨ñ  Γöé  164   A4   ╨┤  Γöé  180   B4   Γöñ
  17266.   133   85   ╨ò  Γöé  149   95   ╨Ñ  Γöé  165   A5   ╨╡  Γöé  181   B5   Γòí
  17267.   134   86   ╨û  Γöé  150   96   ╨ª  Γöé  166   A6   ╨╢  Γöé  182   B6   Γòó
  17268.   135   87   ╨ù  Γöé  151   97   ╨º  Γöé  167   A7   ╨╖  Γöé  183   B7   Γòû
  17269.   136   88   ╨ÿ  Γöé  152   98   ╨¿  Γöé  168   A8   ╨╕  Γöé  184   B8   Γòò
  17270.   137   89   ╨Ö  Γöé  153   99   ╨⌐  Γöé  169   A9   ╨╣  Γöé  185   B9   Γòú
  17271.   138   8A   ╨Ü  Γöé  154   9A   ╨¬  Γöé  170   AA   ╨║  Γöé  186   BA   Γòæ
  17272.   139   8B   ╨¢  Γöé  155   9B   ╨½  Γöé  171   AB   ╨╗  Γöé  187   BB   Γòù
  17273.   140   8C   ╨£  Γöé  156   9C   ╨¼  Γöé  172   AC   ╨╝  Γöé  188   BC   Γò¥
  17274.   141   8D   ╨¥  Γöé  157   9D   ╨¡  Γöé  173   AD   ╨╜  Γöé  189   BD   Γò£
  17275.   142   8E   ╨₧  Γöé  158   9E   ╨«  Γöé  174   AE   ╨╛  Γöé  190   BE   Γò¢
  17276.   143   8F   ╨ƒ  Γöé  159   9F   ╨»  Γöé  175   AF   ╨┐  Γöé  191   BF   ΓöÉ
  17277.  
  17278.                Graphics Characters 2; Symbols
  17279.  
  17280.   Dec  Hex  Chr Γöé  Dec  Hex  Chr Γöé  Dec  Hex  Chr Γöé  Dec  Hex  Chr
  17281.   ---  ---  --- Γöé  ---  ---  --- Γöé  ---  ---  --- Γöé  ---  ---  ---
  17282.   192   C0   Γöö  Γöé  208   D0   Γò¿  Γöé  224   E0   ╤Ç  Γöé  240   F0   ╨ü
  17283.   193   C1   Γö┤  Γöé  209   D1   Γòñ  Γöé  225   E1   ╤ü  Γöé  241   F1   ╤æ
  17284.   194   C2   Γö¼  Γöé  210   D2   ΓòÑ  Γöé  226   E2   ╤é  Γöé  242   F2   ╨ä
  17285.   195   C3   Γö£  Γöé  211   D3   ΓòÖ  Γöé  227   E3   ╤â  Γöé  243   F3   ╤ö
  17286.   196   C4   ΓöÇ  Γöé  212   D4   Γòÿ  Γöé  228   E4   ╤ä  Γöé  244   F4   ╨ç
  17287.   197   C5   Γö╝  Γöé  213   D5   ΓòÆ  Γöé  229   E5   ╤à  Γöé  245   F5   ╤ù
  17288.   198   C6   Γò₧  Γöé  214   D6   Γòô  Γöé  230   E6   ╤å  Γöé  246   F6   ╨Ä
  17289.   199   C7   Γòƒ  Γöé  215   D7   Γò½  Γöé  231   E7   ╤ç  Γöé  247   F7   ╤₧
  17290.   200   C8   ΓòÜ  Γöé  216   D8   Γò¬  Γöé  232   E8   ╤ê  Γöé  248   F8   ┬░
  17291.   201   C9   Γòö  Γöé  217   D9   Γöÿ  Γöé  233   E9   ╤ë  Γöé  249   F9   ΓêÖ
  17292.   202   CA   Γò⌐  Γöé  218   DA   Γöî  Γöé  234   EA   ╤è  Γöé  250   FA   ┬╖
  17293.   203   CB   Γòª  Γöé  219   DB   Γûê  Γöé  235   EB   ╤ï  Γöé  251   FB   ΓêÜ
  17294.   204   CC   Γòá  Γöé  220   DC   Γûä  Γöé  236   EC   ╤î  Γöé  252   FC   Γäû
  17295.   205   CD   ΓòÉ  Γöé  221   DD   Γûî  Γöé  237   ED   ╤ì  Γöé  253   FD   ┬ñ
  17296.   206   CE   Γò¼  Γöé  222   DE   ΓûÉ  Γöé  238   EE   ╤Ä  Γöé  254   FE   Γûá
  17297.   207   CF   Γòº  Γöé  223   DF   ΓûÇ  Γöé  239   EF   ╤Å  Γöé  255   FF
  17298.  
  17299.  
  17300. ΓòÉΓòÉΓòÉ 13.3.2. Key Codes and Scan Codes Table ΓòÉΓòÉΓòÉ
  17301.  
  17302. (For more details on key codes and scan codes, see the Key Codes and Scan Codes 
  17303. Explanation.) 
  17304.  
  17305. The following table lists all of the keys on the 101-key "enhanced" U.S. 
  17306. keyboard.  Many non-U.S. keyboards are similar, but will not be exactly the 
  17307. same.  The keys are arranged roughly in scan code order, which is generally 
  17308. left to right, moving from the top of the keyboard to the bottom. 
  17309.  
  17310. Column 1 shows the key's keycap symbol or name.  Columns 2 and 3 show the scan 
  17311. code, and the ASCII code if the key is unshifted.  Columns 4 and 5 contain the 
  17312. codes for the shifted key.  Columns 6 and 7 show the codes for Ctrl plus the 
  17313. key.  The last column contains the scan code for Alt plus the key (Alt 
  17314. keystrokes have no ASCII code and always generate an ASCII code of 0, which is 
  17315. not shown). 
  17316.  
  17317. Key names prefaced by np are on the numeric keypad.  Those prefaced by cp are 
  17318. on the cursor keypad between the main typing keys and the number keypad.  The 
  17319. numeric keypad values are valid if Num Lock is turned off.  If you need to 
  17320. specify a number key from the numeric keypad when Num Lock is on, use the scan 
  17321. code shown for the keypad and the ASCII code shown for the corresponding 
  17322. typewriter key.  For example, the keypad "7" has a scan code of 71 (the np Home 
  17323. scan code) and an ASCII code of 54 (the ASCII code for "7"). 
  17324.  
  17325. The chart is blank for key combinations that do not have scan codes or ASCII 
  17326. codes, like Ctrl-1 or Alt-PgUp. 
  17327.  
  17328.  
  17329.                    Top Two Keyboard Rows
  17330.  
  17331.                              Shift  Shift  Ctrl   Ctrl   Alt
  17332.                Scan   ASCII  Scan   ASCII  Scan   ASCII  Scan
  17333.      Key       Code   Code   Code   Code   Code   Code   Code
  17334.  
  17335.      Esc       1      27     1      27     1      27     1
  17336.      1  !      2      49     2      33                   120
  17337.      2  @      3      50     3      64     3      0      121
  17338.      3  #      4      51     4      35                   122
  17339.      4  $      5      52     5      36                   123
  17340.      5  %      6      53     6      37                   124
  17341.      6  ^      7      54     7      94     7      30     125
  17342.      7  &      8      55     8      38                   126
  17343.      8  *      9      56     9      42                   127
  17344.      9  (      10     57     10     40                   128
  17345.      0  )      11     48     11     41                   129
  17346.      -  _      12     45     12     95     12     31     130
  17347.      =  +      13     61     13     43                   131
  17348.      Backspace 14     8      14     8      14     127    14
  17349.      Tab       15     9      15     0      148    0      165
  17350.      Q         16     113    16     81     16     17     16
  17351.      W         17     119    17     87     17     23     17
  17352.      E         18     101    18     69     18     5      18
  17353.      R         19     114    19     82     19     18     19
  17354.      T         20     116    20     84     20     20     20
  17355.      Y         21     121    21     89     21     25     21
  17356.      U         22     117    22     85     22     21     22
  17357.      I         23     105    23     73     23     9      23
  17358.      O         24     111    24     79     24     15     24
  17359.      P         25     112    25     80     25     16     25
  17360.      [  {      26     91     26     123    26     27     26
  17361.      ]  }      27     93     27     125    27     29     27
  17362.      Enter     28     13     28     13     28     10     28
  17363.  
  17364.  
  17365.                   Bottom Two Keyboard Rows
  17366.  
  17367.                              Shift  Shift  Ctrl   Ctrl   Alt
  17368.                Scan   ASCII  Scan   ASCII  Scan   ASCII  Scan
  17369.      Key       Code   Code   Code   Code   Code   Code   Code
  17370.  
  17371.     A          30     97     30     65     30     1      30
  17372.     S          31     115    31     83     31     19     31
  17373.     D          32     100    32     68     32     4      32
  17374.     F          33     102    33     70     33     6      33
  17375.     G          34     103    34     71     34     7      34
  17376.     H          35     104    35     72     35     8      35
  17377.     J          36     106    36     74     36     10     36
  17378.     K          37     107    37     75     37     11     37
  17379.     L          38     108    38     76     38     12     38
  17380.     ; :        39     59     39     58                   39
  17381.     '  "       40     39     40     34                   40
  17382.     `  ~       41     96     41     126                  41
  17383.     \  |       43     92     43     124    43     28     43
  17384.     Z          44     122    44     90     44     26     44
  17385.     X          45     120    45     88     45     24     45
  17386.     C          46     99     46     67     46     3      46
  17387.     V          47     118    47     86     47     22     47
  17388.     B          48     98     48     66     48     2      48
  17389.     N          49     110    49     78     49     14     49
  17390.     M          50     109    50     77     50     13     50
  17391.     ,  <       51     44     51     60                   51
  17392.     .  >       52     46     52     62                   52
  17393.     /  ?       53     47     53     63                   53
  17394.     Space      57     32     57     32     57     32     57
  17395.  
  17396.  
  17397.                  Key Pads and Function Keys
  17398.  
  17399.                              Shift  Shift  Ctrl   Ctrl   Alt
  17400.                Scan   ASCII  Scan   ASCII  Scan   ASCII  Scan
  17401.      Key       Code   Code   Code   Code   Code   Code   Code
  17402.  
  17403.  
  17404.      F1        59     0      84     0      94     0      104
  17405.      F2        60     0      85     0      95     0      105
  17406.      F3        61     0      86     0      96     0      106
  17407.      F4        62     0      87     0      97     0      107
  17408.      F5        63     0      88     0      98     0      108
  17409.      F6        64     0      89     0      99     0      109
  17410.      F7        65     0      90     0      100    0      110
  17411.      F8        66     0      91     0      101    0      111
  17412.      F9        67     0      92     0      102    0      112
  17413.      F10       68     0      93     0      103    0      113
  17414.      F11       133    0      135    0      137    0      139
  17415.      F12       134    0      136    0      138    0      140
  17416.      np *      55     42     55     42     150    0      55
  17417.      np Home   71     0      71     55     119    0
  17418.      cp Home   71     224    71     224    119    224    151
  17419.      np Up     72     0      72     56     141    0
  17420.      cp Up     72     224    72     224    141    224    152
  17421.      np PgUp   73     0      73     57     132    0
  17422.      cp PgUp   73     224    73     224    132    224    153
  17423.      np Minus  74     45     74     45     142    0      74
  17424.      np Left   75     0      75     52     115    0
  17425.      cp Left   75     224    75     224    115    224    155
  17426.      np 5      76     0      76     53     143    0
  17427.      np Right  77     0      77     54     116    0
  17428.      cp Right  77     224    77     224    116    224    157
  17429.      np Plus   78     43     78     43     144    0      78
  17430.      np End    79     0      79     49     117    0
  17431.      cp End    79     224    79     224    117    224    159
  17432.      np Down   80     0      80     50     145    0
  17433.      cp Down   80     224    80     224    145    224    160
  17434.      np PgDn   81     0      81     51     118    0
  17435.      cp PgDn   81     224    81     224    118    224    161
  17436.      np Ins    82     0      82     48     146    0
  17437.      cp Ins    82     224    82     224    146    224    162
  17438.      np Del    83     0      83     46     147    0
  17439.      cp Del    83     224    83     224    147    224    163
  17440.      np /      224    47     224    47     149    0      164
  17441.      np Enter  224    13     224    13     224    10     166
  17442.  
  17443.  
  17444. ΓòÉΓòÉΓòÉ 13.3.3. Key Codes and Scan Codes Explanation ΓòÉΓòÉΓòÉ
  17445.  
  17446. (This section explains how key codes and scan codes work.  For a reference 
  17447. chart, see the Key Codes and Scan Codes Table.) 
  17448.  
  17449. When you press a single key or a key combination, OS/2 translates your 
  17450. keystroke into two numbers:  a scan code, representing the actual key that was 
  17451. pressed, and an ASCII code, representing the ASCII value for that key.  OS/2 
  17452. returns these numbers the next time a program requests keyboard input.  This 
  17453. section explains how key codes work; for information on using them with 4OS2 
  17454. see the 4OS2.INI file key mapping directives, keystroke aliases, and INKEY. 
  17455.  
  17456. Most 4OS2 commands that use the numeric key codes listed here also use key 
  17457. names, which are usually more convenient to use than the numeric codes.  See 
  17458. Keys and Key Names for more information. 
  17459.  
  17460. As PCs have evolved, the structure of keyboard codes has evolved somewhat 
  17461. haphazardly with them, resulting in a bewildering array of possible key codes. 
  17462. We'll give you a basic explanation of how key codes work.  For a more in-depth 
  17463. discussion, refer to a BIOS or PC hardware reference manual. 
  17464.  
  17465. The nuances of how your keyboard behaves depends on the keyboard manufacturer, 
  17466. the computer manufacturer who provides the built-in BIOS, and your operating 
  17467. system.  As a result, we can't guarantee the accuracy of the information in the 
  17468. tables for every system, but the discussion and reference table should be 
  17469. accurate for most systems.  Our discussion is based on the 101-key "enhanced" 
  17470. keyboard commonly used on 286, 386, 486, and Pentium computers, but virtually 
  17471. all of it is applicable to the 84-key keyboards on older systems.  The primary 
  17472. difference is that older keyboards lack a separate cursor pad and only have 10 
  17473. function keys. 
  17474.  
  17475. All keys have a scan code, but not all have an ASCII code.  For example, 
  17476. function keys and cursor keys are not part of the ASCII character set and have 
  17477. no ASCII value, but they do have a scan code.  Some keys have more than one 
  17478. ASCII code.  The A, for example, has ASCII code 97 (lower case "a") if you 
  17479. press it by itself.  If you press it along with Shift, the ASCII code changes 
  17480. to 65 (upper case "A").  If you press Ctrl and A the ASCII code changes to 1. 
  17481. In all these cases, the scan code (30) is unchanged because you are pressing 
  17482. the same physical key. 
  17483.  
  17484. Things are different if you press Alt-A.  Alt keystrokes have no ASCII code, so 
  17485. OS/2 returns an ASCII code of 0, along with the A key's scan code of 30.  This 
  17486. allows a program to detect all the possible variations of A, based on the 
  17487. combination of ASCII code and scan code. 
  17488.  
  17489. Some keys generate more than one scan code depending on whether Shift, Ctrl, or 
  17490. Alt is pressed.  This allows a program to differentiate between two different 
  17491. keystrokes on the same key, neither of which has a corresponding ASCII value. 
  17492. For example, F1 has no ASCII value so it returns an ASCII code of 0, and the F1 
  17493. scan code of 59.  Shift-F1 also returns an ASCII code 0; if it also returned a 
  17494. scan code of 59, a program couldn't distinguish it from F1.  The operating 
  17495. system translates scan codes for keys like Shift-F1 (and Ctrl-F1 and Alt-F1) so 
  17496. that each variation returns a different scan code along with an ASCII code of 
  17497. 0. 
  17498.  
  17499. On the 101-key keyboard there's one more variation:  non-ASCII keys on the 
  17500. cursor keypad (such as up-arrow) return the same scan code as the corresponding 
  17501. key on the numeric keypad, for compatibility reasons.  If they also returned an 
  17502. ASCII code of 0, a program couldn't tell which key was pressed.  Therefore, 
  17503. these cursor pad keys return an ASCII code of 224 rather than 0.  This means 
  17504. that older programs, which only look for an ASCII 0 to indicate a non-ASCII 
  17505. keystroke like up-arrow, may not detect these cursor pad keys properly. 
  17506.  
  17507. The number of different codes returned by any given key varies from one (for 
  17508. the spacebar) to four, depending on the key, the design of your keyboard, and 
  17509. the operating system.  Some keys, like Alt, Ctrl, and Shift by themselves or in 
  17510. combination with each other, plus Print Screen, SysReq, Scroll Lock, Pause, 
  17511. Break, Num Lock, and Caps Lock keys, do not have any code representations at 
  17512. all.  The same is true of keystrokes with more than one modifying key, like 
  17513. Ctrl-Shift-A.  The operating system may perform special actions automatically 
  17514. when you press these keys (for example, it switches into Caps Lock mode when 
  17515. you press Caps Lock), but it does not report the keystrokes to whatever program 
  17516. is running.  Programs which detect such keystrokes access the keyboard hardware 
  17517. directly, a subject which is beyond the scope of this manual. 
  17518.  
  17519.  
  17520. ΓòÉΓòÉΓòÉ 13.3.4. ANSI ΓòÉΓòÉΓòÉ
  17521.  
  17522. This section is a quick-reference to commonly-used ANSI commands. 
  17523.  
  17524. An ANSI command string consists of three parts: 
  17525.  
  17526.         ESC[                The ASCII character ESC, followed by a left 
  17527.                             bracket.  These two characters must be present in 
  17528.                             all ANSI strings. 
  17529.         parameters          Optional parameters for the command.  If there are 
  17530.                             multiple parameters they are separated by 
  17531.                             semicolons. 
  17532.         cmd                 A single-letter command.  The case of the letter IS 
  17533.                             meaningful. 
  17534.  
  17535.  For example, to position the cursor to row 7, column 12 the ANSI command is: 
  17536.  
  17537.           ESC[7;12H
  17538.  
  17539.  To transmit ANSI commands to the screen with 4OS2, you should use the ECHO 
  17540.  command.  The ESC character can be generated by inserting it into the string 
  17541.  directly (if you are putting the string in a batch file and your editor will 
  17542.  insert such a character), or by using 4OS2's internal "escape" character 
  17543.  (caret, [^]) followed by a lower-case "e".  For example, the sequence shown 
  17544.  above could be transmitted from a batch file with either of these commands 
  17545.  (the first uses an ESC character directly; the second uses ^e): 
  17546.  
  17547.           echo 2H
  17548.           echo ^e[7;12H
  17549.  
  17550.  You can also include ANSI commands in your prompt, using $e to transmit the 
  17551.  ESC character.  You can NOT use PROMPT to transmit ANSI commands to the screen 
  17552.  from a batch file (see PROMPT). 
  17553.  
  17554.  Commands 
  17555.  
  17556.         ESC[rowsA               Cursor up 
  17557.         ESC[rowsB               Cursor down 
  17558.         ESC[colsC               Cursor right 
  17559.         ESC[colsD               Cursor left 
  17560.         ESC[row;colH            Set cursor position (top left is row 1, column 
  17561.                                 1) 
  17562.         ESC[2J                  Clear screen 
  17563.         ESC[K                   Clear from cursor to end of line 
  17564.         ESC[row;colf            Set cursor position, same as "H" command 
  17565.         ESC[attr;attr;...m      Set display attributes; see table of attribute 
  17566.                                 values below 
  17567.         ESC[s                   Save cursor position (may not be nested) 
  17568.         ESC[u                   Restore cursor position after a save 
  17569.  
  17570.  Display Attributes 
  17571.  
  17572.         0           All attributes off (normal white on black) 
  17573.         1           High intensity (bold) 
  17574.         2           Normal intensity 
  17575.         4           Underline (usually effective only on monochrome displays) 
  17576.         5           Blinking 
  17577.         7           Reverse Video 
  17578.         8           Invisible 
  17579.         30-37       Set the foreground color: 
  17580.                       30=Black  31=Red    32=Green  33=Yellow 
  17581.                       34=Blue   35=Magenta  36=Cyan   37=White 
  17582.         40-47       Set the background color, same values as above but 
  17583.                     substitute 40 for 30 etc. 
  17584.  
  17585.  Settings are cumulative, so (for example) to set bright red foreground set all 
  17586.  attributes off, then set red, then bold, use: 
  17587.  
  17588.           echo ^e[0;31;1m
  17589.  
  17590.  Examples 
  17591.  
  17592.  Clear the display attributes, then set the display to bright cyan on blue, and 
  17593.  clear the screen: 
  17594.  
  17595.           echo ^e[0;44;36;1m^e[2J
  17596.  
  17597.  Set up a prompt which saves the cursor position, displays the 4OS2 shell 
  17598.  level, date, and time on the top line in bright white on magenta, and then 
  17599.  restores the cursor position and sets the color to bright cyan on blue, and 
  17600.  displays the standard prompt: 
  17601.  
  17602.           prompt $e[s$e[1;1f$e[0;45;37;1m$e[K($z) $d $t$e[u$e[0;44;36;1m$p$g
  17603.  
  17604.  
  17605. ΓòÉΓòÉΓòÉ 13.4. Glossary ΓòÉΓòÉΓòÉ
  17606.  
  17607. The glossary contains over 200 terms, and is divided into sections by the first 
  17608. letter of each term.  Select the section you want to review: 
  17609.  
  17610. 4 A B C D E F G H I K L M N O P R S T U V W X 
  17611.  
  17612.  
  17613. ΓòÉΓòÉΓòÉ 13.4.1. Glossary - 4 ΓòÉΓòÉΓòÉ
  17614.  
  17615. A B C D E F G H I K L M N O P R S T U V W X 
  17616.  
  17617. 4EXIT:  A batch file which is executed whenever 4OS2 exits. 
  17618.  
  17619. 4START:  A batch file which is executed whenever 4OS2 starts. 
  17620.  
  17621.  
  17622. ΓòÉΓòÉΓòÉ 13.4.2. Glossary - A ΓòÉΓòÉΓòÉ
  17623.  
  17624. 4 B C D E F G H I K L M N O P R S T U V W X 
  17625.  
  17626. Alias Parameter:  A numbered variable (e.g. %2) included in an alias 
  17627. definition, allowing a different value to be used in the alias each time it is 
  17628. executed. 
  17629.  
  17630. Alias:  A shorthand name for a command or series of commands. 
  17631.  
  17632. AND:  A logical combination of two true or false conditions.  If both 
  17633. conditions are true, the result is true; if either condition is false, the 
  17634. result is false. 
  17635.  
  17636. ANSI:  Usually a reference to ANSI control sequences, standardized sequences of 
  17637. text characters which control colors on the screen, manipulate the cursor, and 
  17638. redefine keys.  OS2 includes support for ANSI screen and cursor control 
  17639. sequences.  The abbreviation ANSI is for American National Standards Institute, 
  17640. an organization whch sets standards for computer-related systems, including 
  17641. "ANSI" screen control sequences. 
  17642.  
  17643. Append:  Concatenation of one file or string onto the end of another (this use 
  17644. is not related to the DOS and OS/2 external command named APPEND). 
  17645.  
  17646. Application:  A program run from the command prompt or a batch file.  Used 
  17647. broadly to mean any program other than the command processor; and more narrowly 
  17648. to mean a program with a specific purpose such as a spreadsheet or word 
  17649. processing program, as opposed to a utility. 
  17650.  
  17651. Archive:  A file attribute indicating that the file has been modified since the 
  17652. last backup (most backup programs clear this attribute).  Also sometimes refers 
  17653. to a single file (such as a .ZIP file) which contains a number of other files 
  17654. in compressed form. 
  17655.  
  17656. Argument:  See Parameter. 
  17657.  
  17658. ASCII File:  A file containing ASCII text, as opposed to a binary file which 
  17659. may contain numbers, or other information that cannot be sensibly interpreted 
  17660. as text. 
  17661.  
  17662. ASCII:  The American Standard Code for Information Interchange, which defines 
  17663. numeric values for 128 different characters comprising the English alphabet, 
  17664. numbers, punctuation, and some control characters. 
  17665.  
  17666. Attribute:  A characteristic of a file which can be set or cleared.  The 
  17667. standard attributes are Read-Only, Hidden, System, and Archive; other 
  17668. attributes include Directory and Volume Label. 
  17669.  
  17670. Automatic Batch Files:  See 4START and 4EXIT. 
  17671.  
  17672. Automatic Directory Change:  A 4OS2 feature which allows you to change 
  17673. directories by typing the directory name and a backslash [\] at the prompt. 
  17674.  
  17675.  
  17676. ΓòÉΓòÉΓòÉ 13.4.3. Glossary - B ΓòÉΓòÉΓòÉ
  17677.  
  17678. 4 A C D E F G H I K L M N O P R S T U V W X 
  17679.  
  17680. Base Name:  The file name without a drive, path, or extension.  For example, in 
  17681. the file name C:\DIR1\LETTER.DAT the base name is LETTER. 
  17682.  
  17683. BAT File:  See Batch File. 
  17684.  
  17685. Batch File:  A text file containing a sequence of commands for the command 
  17686. processor to execute.  Batch files are used to save command sequences so that 
  17687. they can be re-executed at any time, transferred to another system, etc.  The 
  17688. extension of a batch file may be .BAT, .CMD, or .BTM, depending on the 
  17689. operating system and command processor you are using. 
  17690.  
  17691. Batch File Parameter:  A numbered variable (e.g. %2) used within a batch file, 
  17692. allowing a different value to be used at that spot in the file each time it is 
  17693. executed. 
  17694.  
  17695. Binary File:  A file containing information which does not represent or cannot 
  17696. sensibly be interpreted as text.  See also ASCII File. 
  17697.  
  17698. BIOS or Basic Input Output System:  The software (or "firmware") stored on 
  17699. chips inside PC systems.  The BIOS provides basic low-level control of devices 
  17700. required to operate the system, such as the keyboard, floppy disk, and screen; 
  17701. it also handles system self-tests at startup, and intiates loading of the 
  17702. operating system. 
  17703.  
  17704. Block Device:  A physical device for input or output which can transmit or 
  17705. receive large blocks of data while the computer is engaged in other activities. 
  17706. Examples include disk, tape, and CD-ROM drives.  See also Character Device. 
  17707.  
  17708. Boot Directory:  The current directory at the time the system is booted, 
  17709. usually the root directory of the boot drive. 
  17710.  
  17711. Boot Drive:  The disk drive that the system is booted from, usually A: (the 
  17712. floppy disk) or C: (the hard disk). 
  17713.  
  17714. Boot:  The process of starting the computer and loading the operating system 
  17715. into memory.  See also Reboot, Cold Reboot, and Warm Reboot. 
  17716.  
  17717. Break:  A signal sent to a program to tell it to halt what it is doing.  The 
  17718. Ctrl-C key  or Ctrl-Break key is used to send this signal.  Some external 
  17719. commands abort when they receive a break signal; others return to a previous 
  17720. screen or menu, or abort the current operation. 
  17721.  
  17722. BTM File:  A special type of 4OS2 batch file which is loaded into memory to 
  17723. speed up execution. 
  17724.  
  17725. Buffer:  An area of memory set aside for storage.  For example, disk buffers 
  17726. are used to save information as it is transferred between your program and the 
  17727. disk, and the keyboard buffer holds keystrokes until a program can use them. 
  17728.  
  17729.  
  17730. ΓòÉΓòÉΓòÉ 13.4.4. Glossary - C ΓòÉΓòÉΓòÉ
  17731.  
  17732. 4 A B D E F G H I K L M N O P R S T U V W X 
  17733.  
  17734. CDFS or CD-ROM File System:  The file system which supports CD-ROM drives. 
  17735. This is typically implemented as a distinct file system in 32-bit operating 
  17736. systems like OS/2 and Windows NT.  On other platforms it is implemented as a 
  17737. component of or addition to the underlying general file system for disk drives. 
  17738.  
  17739. Character Device:  A physical device for input or output which must communicate 
  17740. with your computer one character at a time.  Examples include the console, 
  17741. communications ports, and printers.  See also Block Device. 
  17742.  
  17743. Character Mode:  A display mode in which output is displayed in a fixed font, 
  17744. typically with 80 columns in a line and 25 lines on the screen (some systems 
  17745. allow you to increase the number of rows and columns to other fixed sizes), and 
  17746. which cannot display graphics or pictures.  See also Graphics Mode. 
  17747.  
  17748. CMD File:  See Batch File. 
  17749.  
  17750. CMDLINE:  An environment variable used to extend the command line passed to 
  17751. another program beyond its normal length limits. 
  17752.  
  17753. Cold Reboot:  The process of restarting the computer in a way that physically 
  17754. resets most hardware devices, typically by pressing a reset button, or by 
  17755. turning the power off and back on.  See also Warm Reboot. 
  17756.  
  17757. Command Completion:  A 4OS2 feature which allows you to recall a previous 
  17758. command by typing the first few letters of the command, then an up-arrow or 
  17759. down-arrow. 
  17760.  
  17761. Command Echoing:  A feature which displays commands as they are executed. 
  17762. Echoing can be turned on and off. 
  17763.  
  17764. Command Grouping:  A 4OS2 feature which allows you to group several commands 
  17765. with parentheses, and have them treated as a single command for most purposes. 
  17766.  
  17767. Command History Window:  A pop-up window used by 4OS2 to display the command 
  17768. history, allowing you to choose a previous command to modify and/or execute. 
  17769.  
  17770. Command History:  A 4OS2 feature which retains commands you have executed, so 
  17771. that they can be modified and re-executed later. 
  17772.  
  17773. Command Processor:  A program which interprets commands and executes other 
  17774. programs.  Sometimes also called a Command Interpreter. 
  17775.  
  17776. Command Recall:  See Command History. 
  17777.  
  17778. Command Separator:  A character used to separate multiple commands on the same 
  17779. command line. 
  17780.  
  17781. Command Tail:  The portion of a command consisting of all the arguments, i.e., 
  17782. everything but the command name itself. 
  17783.  
  17784. Compound Command:  See Multiple Commands. 
  17785.  
  17786. Compression:  An operating system feature which compresses data as it is stored 
  17787. in a disk file, and decompresses it as it is read back, resulting in more 
  17788. efficient use of disk space (at a slight cost in processor time to perform the 
  17789. compression and decompression).  More generally, an approach to data storage 
  17790. which reduces repeated or redundant information to a smaller number of bytes in 
  17791. the compressed version than in the original, in order to minimize the space 
  17792. required to store the information. 
  17793.  
  17794. COMSPEC:  An environment variable which defines where to find the 
  17795. character-mode command processor to start a secondary shell. 
  17796.  
  17797. Conditional Commands:  A 4OS2 feature allowing commands to be executed or 
  17798. skipped depending on the results of a previous command.  See also Exit Code. 
  17799.  
  17800. Console:  The PC keyboard and display. 
  17801.  
  17802. Console Mode:  See Character Mode. 
  17803.  
  17804. Control Character:  A character which is part of the ASCII code, but does not 
  17805. have a normal text representation, and which can usually be generated by 
  17806. pressing the Ctrl key along with another key. 
  17807.  
  17808. Coprocessor:  See Numeric Coprocessor. 
  17809.  
  17810. Country Settings:  The internal settings which tell the operating system how to 
  17811. interpret keyboard characters which vary from country to country, which 
  17812. character set to use, and how to retrieve and display date, time, and other 
  17813. information in the format appropriate to a particular country.  See also Code 
  17814. Page. 
  17815.  
  17816. CPU:  The Central Processing Unit which performs all logic and most 
  17817. calculations in a computer.  In PC-compatible systems, the CPU is on a single 
  17818. microprocessor chip. 
  17819.  
  17820. CR or Carriage Return:  The ASCII character "carriage return" (decimal value 
  17821. 13), generated by pressing the Enter key on the keyboard, and stored in most 
  17822. ASCII files at the end of each line. 
  17823.  
  17824. Critical Error:  An error, usually related to a physical or hardware problem 
  17825. with input, output, or network access, which prevents a program from 
  17826. continuing. 
  17827.  
  17828. Current Directory:  The directory in which all file operations will take place 
  17829. unless otherwise specified.  The current directory is typically displayed as 
  17830. part of the command prompt.  Also called the Current Working Directory. 
  17831.  
  17832. Current Drive:  The disk drive on which all file operations will take place 
  17833. unless otherwise specified.  The current drive is typically displayed as part 
  17834. of the command prompt. 
  17835.  
  17836. Cursor:  A movable marker on the screen to show where text will be entered when 
  17837. you type at the keyboard, or which object on the screen will be affected when a 
  17838. mouse button is clicked.  In character mode only the text cursor is available; 
  17839. graphical systems typically show both a mouse cursor and, when text can be 
  17840. entered, a separate text cursor. 
  17841.  
  17842.  
  17843. ΓòÉΓòÉΓòÉ 13.4.5. Glossary - D ΓòÉΓòÉΓòÉ
  17844.  
  17845. 4 A B C E F G H I K L M N O P R S T U V W X 
  17846.  
  17847. Date Range:  A 4OS2 feature which allows you to select files based on the date 
  17848. and time they were last modified. 
  17849.  
  17850. Date Stamp:  Information stored in a file's directory entry to show the dates 
  17851. on which the file was created, last modified, and last accessed.  Creation and 
  17852. last access dates are not available in the FAT file system.  See also Time 
  17853. Stamp. 
  17854.  
  17855. Default Directory:  See Current Directory 
  17856.  
  17857. Default Drive:  See Current Drive. 
  17858.  
  17859. Delete Tracking:  An operating system or utility software feature which is 
  17860. designed to allow you to "undelete" or recover files which have recently been 
  17861. deleted.  Delete tracking typically works by temporarily retaining the deleted 
  17862. files and/or information about the deleted files in a special area of the disk. 
  17863.  
  17864. Description:  A string of characters assigned to describe a file with the 4OS2 
  17865. DESCRIBE command. 
  17866.  
  17867. Destination:  In file processing commands (e.g. COPY or MOVE), the name or 
  17868. directory files should have after any copying or modification has taken place, 
  17869. generally the last specification on the command line.  See also Source. 
  17870.  
  17871. Detached Process:  A program which is "detached" from the normal means of user 
  17872. input and output, and cannot use the keyboard, mouse, or video display. 
  17873.  
  17874. Device Driver:  A program which allows the operating system to communicate with 
  17875. a device, and which is loaded into memory when the system boots.  Device 
  17876. drivers are also used to manage memory or for other similar internal functions. 
  17877.  
  17878. Device:  A physical device for input or output such as the console, a 
  17879. communications port, or a printer.  Sometimes "device" is used to refer to 
  17880. character devices, and excludes block devices. 
  17881.  
  17882. Directive:  An individual item in the 4OS2.INI file, used to control the 
  17883. configuration of 4OS2. 
  17884.  
  17885. Directory:  A portion of any disk, identified by a name and a relationship to 
  17886. other directories in a "tree" structure, with the tree starting at the root 
  17887. directory.  A directory separates files on the disk into logical groups, but 
  17888. does not represent a physical division of the data on the disk. 
  17889.  
  17890. Directory History:  A 4OS2 feature which allows you to recall recently-used 
  17891. directory names in a popup window, and choose one to switch to. 
  17892.  
  17893. Directory History Window:  See Directory History. 
  17894.  
  17895. Directory Stack:  A 4OS2 feature, implemented through the PUSHD and POPD 
  17896. commands, which allows you to save the current directory and return to it 
  17897. later.  See also Stack. 
  17898.  
  17899. Directory Tree:  The branching structure of directories on a hard disk, 
  17900. starting at the root directory.  The root of the tree is usually considered as 
  17901. the "top" of the structure, so the actual structure can be visualized as an 
  17902. upside-down tree with the root at the top and branches going "down".  A portion 
  17903. or branch of the directory tree is sometimes called a "subtree". 
  17904.  
  17905. DOS Memory:  See Base Memory. 
  17906.  
  17907. DOS Session:  See Session. 
  17908.  
  17909. DPMI or DOS Protected Mode Interface:  A specification which allows DOS 
  17910. programs to access memory beyond 1 MB in order to manage larger programs or 
  17911. larger amounts of information than will fit in base memory.  DPMI support for 
  17912. DOS programs is provided by some DOS memory managers, and by OS/2, Windows 3.1 
  17913. and above, Windows 95, and Windows NT. 
  17914.  
  17915. Drive Letter:  A letter used to designate a specific local disk volume, or part 
  17916. or all of a network server drive.  In most cases drive letters range from A - 
  17917. Z, but some network operating systems allow the use of certain punctuation 
  17918. characters as drive letters in order to support more than 26 volumes. 
  17919.  
  17920.  
  17921. ΓòÉΓòÉΓòÉ 13.4.6. Glossary - E ΓòÉΓòÉΓòÉ
  17922.  
  17923. 4 A B C D F G H I K L M N O P R S T U V W X 
  17924.  
  17925. Echo:  See Command Echoing. 
  17926.  
  17927. Environment:  An area of memory which contains multiple entries in the form 
  17928. "NAME=value".  See also Master Environment and Passed Environment. 
  17929.  
  17930. Environment Variable:  The name of a single entry in the environment. 
  17931.  
  17932. Error Level:  A numeric value between 0 and 255 returned from an external 
  17933. command to indicate its result (e.g., success, failure, response to a 
  17934. question).  See also Exit Code. 
  17935.  
  17936. Escape Character:  In some contexts, the 4OS2 escape character, which is used 
  17937. to suppress the normal meaning of or give special meaning to the following 
  17938. character.  In other cases, the specific ASCII character ESC.  The meaning must 
  17939. be determined from the context. 
  17940.  
  17941. Escape Sequence:  A sequence of text characters which has a special meaning and 
  17942. is not treated as normal text.  For example, the character sequence <ESC>]K 
  17943. (where <ESC> is the ASCII "escape" character, decimal value 27) will cause an 
  17944. ANSI driver to clear the screen from the cursor to the end of the current line, 
  17945. rather than simply displaying the string "ESC]K" on the screen.  Similarly, in 
  17946. 4OS2, the escape sequence ^f on the command line is translated to a form feed, 
  17947. and is not treated as the literal characters "^f". 
  17948.  
  17949. Executable Extensions:  A 4OS2 feature which allows you to specify the 
  17950. application to be executed when a file with a particular extension is named at 
  17951. the command prompt. 
  17952.  
  17953. Executable File:  A file, usually with the extension .COM or .EXE, which can be 
  17954. loaded into memory and run as a program. 
  17955.  
  17956. Exit Code:  The result code returned by an external command or an internal 
  17957. command.  4OS2 internal commands return an exit code of 0 if successful, or 
  17958. non-zero if unsuccessful.  See also Errorlevel. 
  17959.  
  17960. Expansion:  The process 4OS2 goes through when it scans a command line and 
  17961. substitutes the appropriate actual values for aliases, alias parameters, batch 
  17962. file parameters, and environment variables.  See also Parsing. 
  17963.  
  17964. Extended ASCII Character:  A character which is not part of the standard set of 
  17965. 128 ASCII characters, but is used on the PC as part of an extended set of 256 
  17966. characters.  These characters include international language symbols, and box 
  17967. and line drawing characters. 
  17968.  
  17969. Extended Attributes:  An OS/2 High Performance File System (HPFS) feature which 
  17970. allows storage of additional information about a file, separate from the file 
  17971. itself.  Extended attributes are typically used to store icons for executable 
  17972. files, property or settings information, and other information added by the 
  17973. user. 
  17974.  
  17975. Extended Directory Search:  A 4OS2 feature which maintains a directory search 
  17976. "database" or list, typically including all directories in your system, and 
  17977. allows you to change quickly to any directory in the list. 
  17978.  
  17979. Extended Key Code:  The code for a key on the PC keyboard which has no 
  17980. representation in the standard ASCII character set, such as a function key, 
  17981. cursor key, or Alt plus another key.  The extended key code for a key is often 
  17982. the same as the scan code for that key. 
  17983.  
  17984. Extended Memory:  Any memory on a computer system with a 286, 386, 486, or 
  17985. Pentium processor which is above the first 1 MB (one megabyte, or 1024*1024 
  17986. bytes) of memory.  See also XMS. 
  17987.  
  17988. Extended Parent Directory Names:  A 4OS2 feature which allows you to use 
  17989. additional periods in a directory name to represent directories which are 
  17990. successively higher in the directory tree. 
  17991.  
  17992. Extended Wildcard:  A 4OS2 feature which extends the traditional wildcard 
  17993. syntax and allows you to use multiple wildcard characters, and character ranges 
  17994. (e.g. [a-f] for the letters A through F).  See also Wildcard. 
  17995.  
  17996. Extension:  The final portion of a file name, preceded by a period.  For 
  17997. example, in the file name C:\DIR1\LETTER.DAT the extension is .DAT.  In a long 
  17998. filename which contains multiple periods, the extension is usually considered 
  17999. to be the portion of the name after the final period. 
  18000.  
  18001. External Command:  A program which resides in an executable file, as opposed to 
  18002. an internal command which is part of the command processor. 
  18003.  
  18004. EXTPROC:  A command processor feature which allows you to designate a specific 
  18005. external program to run a particular batch file. 
  18006.  
  18007.  
  18008. ΓòÉΓòÉΓòÉ 13.4.7. Glossary - F ΓòÉΓòÉΓòÉ
  18009.  
  18010. 4 A B C D E G H I K L M N O P R S T U V W X 
  18011.  
  18012. FAT File System:  The traditional file system used by DOS to store files on 
  18013. diskettes and hard disks; also supported by OS/2 and Windows NT.  Uses a File 
  18014. Allocation Table to keep track of allocated and unallocated space on the disk. 
  18015.  
  18016. FAT-Compatible File Name:  See SFN. 
  18017.  
  18018. FF or Form Feed:  The ASCII character "form feed" (decimal value 12), which 
  18019. typically causes a printer to skip to a new page.  The FF character is not 
  18020. normally entered from the keyboard, but in many cases it can be generated, if 
  18021. necessary, by holding the Alt key, pressing 0-1-2, and releasing the Alt key. 
  18022.  
  18023. File Attribute:  See Attribute. 
  18024.  
  18025. File Description:  See Description. 
  18026.  
  18027. File Exclusion Range:  A 4OS2 feature which allows you to exclude files from 
  18028. processing by internal commands based on their names. 
  18029.  
  18030. Filename Completion:  A 4OS2 feature which allows you to type part of a 
  18031. filename on the command line, and have the command processor fill in the rest 
  18032. for you. 
  18033.  
  18034. Free Memory:  Usually, the amount of total memory which is unoccupied and 
  18035. available for applications. 
  18036.  
  18037.  
  18038. ΓòÉΓòÉΓòÉ 13.4.8. Glossary - G ΓòÉΓòÉΓòÉ
  18039.  
  18040. 4 A B C D E F H I K L M N O P R S T U V W X 
  18041.  
  18042. Global Aliases:  A 4OS2 option which allows you to store aliases in a global 
  18043. area accessible to all copies of 4OS2, so that any change made by one copy is 
  18044. immediately available to all other copies.  See also Local Aliases. 
  18045.  
  18046. Global Directory History:  An option which allows you to store the directory 
  18047. history in a global area accessible to all copies of 4OS2, so that any change 
  18048. made by one copy is immediately available to all other copies.  See also Local 
  18049. Directory History. 
  18050.  
  18051. Global History:  A 4OS2 option which allows you to store the command history in 
  18052. a global area accessible to all copies of 4OS2, so that any change made by one 
  18053. copy is immediately available to all other copies.  See also Local History. 
  18054.  
  18055. Graphics Mode:  A display mode in which output is displayed in any one of a 
  18056. range of fonts, typically in resizable windows with a variable number of text 
  18057. rows and columns, and which supports the display of graphics and pictures along 
  18058. with text.  See also Character Mode. 
  18059.  
  18060.  
  18061. ΓòÉΓòÉΓòÉ 13.4.9. Glossary - H ΓòÉΓòÉΓòÉ
  18062.  
  18063. 4 A B C D E F H I K L M N O P R S T U V W X 
  18064.  
  18065. Hidden:  A file attribute indicating that the file should not be displayed with 
  18066. a normal DIR command, and should not be made available to programs unless they 
  18067. specifically request access to hidden files. 
  18068.  
  18069. History Window:  See Command History Window and Directory History. 
  18070.  
  18071. History:  See Command History. 
  18072.  
  18073. HMA or High Memory Area:  The area of PC memory located in the first 64K bytes 
  18074. above the 1 megabyte that DOS can address directly.  The HMA can be made 
  18075. addressable from DOS programs using special hardware facilities, or an XMS 
  18076. driver. 
  18077.  
  18078. HPFS or High Performance File System:  A file system distributed with OS/2 and 
  18079. Windows NT 3.51 and below which allows longer file names, supports larger 
  18080. drives, and provides better performance than the traditional FAT file system. 
  18081.  
  18082.  
  18083. ΓòÉΓòÉΓòÉ 13.4.10. Glossary - I ΓòÉΓòÉΓòÉ
  18084.  
  18085. 4 A B C D E F G H K L M N O P R S T U V W X 
  18086.  
  18087. IFS or Installable File System:  A file system which can be loaded when 
  18088. required to support devices such as CD-ROM or network drives, or non-default 
  18089. disk formats like HPFS (in OS/2) or NTFS (in Windows NT).  Installable file 
  18090. systems are primarily supported 32-bit operating systems like OS/2 and Windows 
  18091. NT.  Depending on operating system design they may be loaded at boot time, or 
  18092. loaded and unloaded dynamically while the system is running. 
  18093.  
  18094. Include List:  A concise method of specifying several files or groups of files 
  18095. in the same directory, for use with all 4OS2 commands which take file names as 
  18096. arguments. 
  18097.  
  18098. Inheritance:  A feature which allows one copy of 4OS2 to "inherit" the .INI 
  18099. file data, aliases, command history, and directory history from a previous 
  18100. copy.  More generally, a system which allows one program to pass information or 
  18101. settings on to another, often to a second copy of the same program. 
  18102.  
  18103. .INI File:  The 4OS2 initialization file containing directives which set the 
  18104. initial configuration of the command processor. 
  18105.  
  18106. Insert Mode:  When editing text, a mode in which newly typed characters are 
  18107. inserted into the line at the cursor position, rather than overwriting existing 
  18108. characters on the line.  See also Overstrike Mode. 
  18109.  
  18110. Internal Command:  A command which is part of the command processor, as opposed 
  18111. to an external command. 
  18112.  
  18113. Internal Variables:  Environment variables created by 4OS2 to provide 
  18114. information about your system.  Internal variables are evaluated each time they 
  18115. are used, and are not actually stored in the environment. 
  18116.  
  18117.  
  18118. ΓòÉΓòÉΓòÉ 13.4.11. Glossary - K ΓòÉΓòÉΓòÉ
  18119.  
  18120. 4 A B C D E F G H I L M N O P R S T U V W X 
  18121.  
  18122. Key Code:  The code passed to a program when a key is pressed on the keyboard. 
  18123. Depending on the key that is pressed, and the software handling the keyboard, 
  18124. the code can be an ASCII code, a scan code, or an extended key code. 
  18125.  
  18126. Key Mapping:  A 4OS2 feature which allows you to assign new keystrokes for 
  18127. command line functions such as manipulating the command history or completing 
  18128. file names. 
  18129.  
  18130. Keyboard Buffer:  A buffer which holds keystrokes you have typed that have not 
  18131. yet been used by the currently executing program. 
  18132.  
  18133. Keystroke Alias:  An alias assigned to a key, so that it can be invoked or 
  18134. recalled with a single keystroke. 
  18135.  
  18136.  
  18137. ΓòÉΓòÉΓòÉ 13.4.12. Glossary - L ΓòÉΓòÉΓòÉ
  18138.  
  18139. 4 A B C D E F G H I K M N O P R S T U V W X 
  18140.  
  18141. Label:  A marker in a batch file, with the format :name, allowing GOTO and 
  18142. GOSUB commands to "jump" to that point in the file.  See also Volume Label. 
  18143.  
  18144. LF or Line Feed:  The ASCII character "line feed" (decimal value 10), stored in 
  18145. most ASCII files at the end of each line, after the CR character.  The LF 
  18146. character is not normally entered from the keyboard, but in many cases it can 
  18147. be generated, if necessary, by pressing Ctrl-Enter. 
  18148.  
  18149. Local Aliases:  A 4OS2 option which allows you to store aliases in a local area 
  18150. only accessible to the current copy of 4OS2, so that a change made in the 
  18151. current copy of 4OS2 does not affect other copies, and vice versa.  See also 
  18152. Global Aliases. 
  18153.  
  18154. Local Directory History:  A 4OS2 option which allows you to store the directory 
  18155. history in a local area only accessible to the current copy of 4OS2, so that a 
  18156. change made in the current copy of 4OS2 does not affect other copies, and vice 
  18157. versa.  See also Global Directory History. 
  18158.  
  18159. Local History:  A 4OS2 option which allows you to store the command history in 
  18160. a local area only accessible to the current copy of 4OS2, so that a change made 
  18161. in the current copy of 4OS2 does not affect other copies, and vice versa.  See 
  18162. also  Global History. 
  18163.  
  18164. Logging:  A 4OS2 feature, implemented via the LOG command, which allows you to 
  18165. save a record of the commands you execute. 
  18166.  
  18167.  
  18168. ΓòÉΓòÉΓòÉ 13.4.13. Glossary - M ΓòÉΓòÉΓòÉ
  18169.  
  18170. 4 A B C D E F G H I K L N O P R S T U V W X 
  18171.  
  18172. Master Environment:  The master copy of the environment maintained by the 
  18173. command processor. 
  18174.  
  18175. Modulo:  The remainder after an integer division.  For example 11 modulo 3 is 
  18176. 2, because when 11 is divided by 3 the remainder is 2. 
  18177.  
  18178. Multiple Commands:  A 4OS2 feature which allows multiple commands to be placed 
  18179. on a line, separated by an ampersand [&], or another, user-defined character. 
  18180.  
  18181. Multitasking:  A capability of some software (and the related hardware) which 
  18182. allows two or more programs to run apparently simultaneously on the same 
  18183. computer.  Multitasking software for PC compatible systems includes operating 
  18184. environments like Windows 3, and complete operating systems like OS/2, Windows 
  18185. 95, and Windows NT. 
  18186.  
  18187.  
  18188. ΓòÉΓòÉΓòÉ 13.4.14. Glossary - N ΓòÉΓòÉΓòÉ
  18189.  
  18190. 4 A B C D E F G H I K L M O P R S T U V W X 
  18191.  
  18192. Network:  A system which allows several computers to be connected together to 
  18193. share files, printers, modems, or other resources, and to pass electronic mail 
  18194. or other information between the systems on the network. 
  18195.  
  18196. Network File System:  Software which runs over a network to allow access to 
  18197. files on the server.  A network file system may support the same options as the 
  18198. file system used on local drives, or it may be more or less restrictive than 
  18199. the local file system about file names, disk volume capacity, and other similar 
  18200. features. 
  18201.  
  18202. NTFS or New Technology File System:  A file system distributed with Windows NT 
  18203. which allows longer file names, supports larger drives, and provides better 
  18204. performance than the traditional FAT file system. 
  18205.  
  18206. Numeric Coprocessor:  A chip which works in conjunction with an Intel 8086, 
  18207. 80286, 80386, 80486, or Pentium CPU to perform decimal arithmetic ("floating 
  18208. point") calculations.  Some 80486s and the Pentium CPU have the numeric 
  18209. coprocessor built in to the CPU chip; in all other cases it is on a physically 
  18210. separate chip, and is optional (when the coprocessor is not avilable, the CPU 
  18211. performs decimal arithmetic through other, much slower methods). 
  18212.  
  18213.  
  18214. ΓòÉΓòÉΓòÉ 13.4.15. Glossary - O ΓòÉΓòÉΓòÉ
  18215.  
  18216. 4 A B C D E F G H I K L M N P R S T U V W X 
  18217.  
  18218. Operating System:  A collection of software which loads when the computer is 
  18219. started, provides services to other software, and ensures that programs don't 
  18220. interfere with each other while they are running. 
  18221.  
  18222. Option:  See Switch. 
  18223.  
  18224. OR:  A logical combination of two true or false conditions.  If both conditions 
  18225. are false the result is false; if either condition is true the result is true. 
  18226.  
  18227. Overstrike Mode:  When editing text, a mode in which newly typed characters 
  18228. overwrite existing characters on the line, rather than being inserted into the 
  18229. line at the cursor position.  See also Insert Mode. 
  18230.  
  18231.  
  18232. ΓòÉΓòÉΓòÉ 13.4.16. Glossary - P ΓòÉΓòÉΓòÉ
  18233.  
  18234. 4 A B C D E F G H I K L M N O R S T U V W X 
  18235.  
  18236. Parameter:  A piece of additional information placed after a command or 
  18237. function name.  For example, in the command DIR XYZ, XYZ is a parameter.  Also 
  18238. used to refer to an alias parameter or batch file parameter. 
  18239.  
  18240. Parent Directory:  The directory in which a particular subdirectory resides, 
  18241. often seen as the directory "above" a subdirectory. 
  18242.  
  18243. Parsing:  The process 4OS2 performs to analyze the command line, perform alias 
  18244. and environment variable expansion, and find the appropriate internal command 
  18245. or external command to execute.  More generally, the process of breaking down a 
  18246. string or message into its individual components in order to process them 
  18247. properly. 
  18248.  
  18249. Passed Environment:  A copy of the master environment created before running an 
  18250. application, so that any changes made by the application will not affect the 
  18251. master environment. 
  18252.  
  18253. Path:  A specification of all the directories a file resides in.  For example, 
  18254. the path for C:\WPFILES\MYDIR\MEMO.TXT is C:\WPFILES\MYDIR\.  Also used to 
  18255. refer to the environment variable PATH, which contains a series of path 
  18256. specifications used when searching for external commands and batch files. 
  18257.  
  18258. Pipe:  A method for collecting the standard output of one program and passing 
  18259. it on as the standard input of the next program to be executed, signified by a 
  18260. vertical bar "|" on the command line.  See also Redirection. 
  18261.  
  18262. Previous Working Directory:  The working directory used most recently, just 
  18263. prior to the current working directory.  For example, if C:\DATA is the current 
  18264. working directory and you switch to D:\UTIL, C:\DATA then becomes the previous 
  18265. working directory. 
  18266.  
  18267. Primary Shell:  The copy of the character-mode command processor which is 
  18268. loaded by the operating system when the system boots or a session opens. 
  18269.  
  18270.  
  18271. ΓòÉΓòÉΓòÉ 13.4.17. Glossary - R ΓòÉΓòÉΓòÉ
  18272.  
  18273. 4 A B C D E F G H I K L M N O P S T U V W X 
  18274.  
  18275. RAM or Random Access Memory:  The physical memory used to store data while a 
  18276. computer is operating.  The information in most types of RAM is lost when power 
  18277. is turned off. 
  18278.  
  18279. RAM Disk:  A pseudo "disk drive", created by software, which appears like a 
  18280. normal physical disk drive to programs.  Sometimes also called a Virtual Disk. 
  18281.  
  18282. Range:  See Date Range, Size Range, Time Range, and File Exclusion Range. 
  18283.  
  18284. Read-Only:  A file attribute indicating that the file can be read, but not 
  18285. written or deleted by the operating system or the command processor unless 
  18286. special commands are used. 
  18287.  
  18288. Reboot:  The process of restarting the computer with software, with the 
  18289. keyboard (e.g. by pressing Ctrl-Alt-Del), by pressing a reset button, or by 
  18290. turning the power off and back on.  See also Cold Reboot and Warm Reboot. 
  18291.  
  18292. Redirection:  A method for collecting output from a program in a file, and/or 
  18293. of providing the input for a program from a file.  See also Pipe. 
  18294.  
  18295. REXX:  A file and text processing language developed by IBM, and available on 
  18296. many PC and other platforms. 
  18297.  
  18298. ROM or Read Only Memory:  A physical memory device used to store information 
  18299. which cannot be readily modified, such as the BIOS built into each PC system. 
  18300. The information in ROM is typically retained when power is turned off. 
  18301.  
  18302. Root Directory:  The first directory on any disk, from which all other 
  18303. directories are "descended."  The root directory is referenced with a single 
  18304. backslash [\]. 
  18305.  
  18306.  
  18307. ΓòÉΓòÉΓòÉ 13.4.18. Glossary - S ΓòÉΓòÉΓòÉ
  18308.  
  18309. 4 A B C D E F G H I K L M N O P R T U V W X 
  18310.  
  18311. Scan Code:  The physical code for a key on the PC keyboard.  For the original 
  18312. U.S. English keyboard layout the scan code represents the physical position of 
  18313. the key, starting with 1 for the key in the upper left corner (Esc), and 
  18314. increasing from left to right and top to bottom.  This order will vary for more 
  18315. recent keyboards or those designed for other countries or languages. 
  18316.  
  18317. Search Path:  See PATH. 
  18318.  
  18319. Secondary Shell:  A copy of the command processor which is started by another 
  18320. program, rather than by the operating system. 
  18321.  
  18322. Session:  A general term for the individual windows or tasks started by a 
  18323. multitasking system.  For example, under OS/2 you might run a DOS application 
  18324. in one session, and 4OS2 in another. 
  18325.  
  18326. Shell:  See Command Processor.  Also used to refer to a program which gives 
  18327. access to operating system functions and commands through a menu- or 
  18328. mouse-driven system, or which replaces the primary user interface of the 
  18329. operating system. 
  18330.  
  18331. Size Range:  A 4OS2 feature which allows you to select files based on their 
  18332. size. 
  18333.  
  18334. Source:  In file processing commands (e.g. COPY or MOVE), the original files 
  18335. before any copying or modification has taken place, i.e., those specified 
  18336. earlier on the command line.  See also Destination. 
  18337.  
  18338. Stack:  An area of memory used by any program to store temporary data while the 
  18339. program is running; more generally, any such storage area where the last item 
  18340. stored is normally the first one removed. 
  18341.  
  18342. Standard Error, Standard Input, and Standard Output:  The file(s) or character 
  18343. device(s) where a program respectively displays error messages, obtains its 
  18344. normal input, and displays its normal output.  Standard error, standard input, 
  18345. and standard output normally refer to the console, unless redirection is used. 
  18346.  
  18347. Subdirectory:  Any directory other than the root directory. 
  18348.  
  18349. Subtree:  See Directory Tree. 
  18350.  
  18351. Swap File:  A disk file created by an operating system or a program to store 
  18352. unused information on disk, and thereby free up memory for other purposes. 
  18353.  
  18354. Switch:  A parameter for an internal command or application which specifies a 
  18355. particular behavior or setting.  For example, the command "DIR /P" might be 
  18356. referred to as "having the /P switch set". 
  18357.  
  18358. System:  A file attribute indicating that the file belongs to the operating 
  18359. system or command processor, and should not be accessed by other programs. 
  18360.  
  18361.  
  18362. ΓòÉΓòÉΓòÉ 13.4.19. Glossary - T ΓòÉΓòÉΓòÉ
  18363.  
  18364. 4 A B C D E F G H I K L M N O P R S U V W X 
  18365.  
  18366. Target:  See Destination. 
  18367.  
  18368. Time Range:  A 4OS2 feature which allows you to select files based on the time 
  18369. they were last modified. 
  18370.  
  18371. Time Stamp:  Information stored in a file's directory entry to show the times 
  18372. at which the file was created, last modified, and last accessed.  Creation time 
  18373. is not available in the FAT file system; last access time is only available in 
  18374. the HPFS and NTFS file systems.  See also Date Stamp. 
  18375.  
  18376. Tree:  See Directory Tree. 
  18377.  
  18378.  
  18379. ΓòÉΓòÉΓòÉ 13.4.20. Glossary - U ΓòÉΓòÉΓòÉ
  18380.  
  18381. 4 A B C D E F G H I K L M N O P R S T V W X 
  18382.  
  18383. UMB or Upper Memory Block:  An XMS Upper Memory Block, whose address is above 
  18384. the end of base memory (normally, above 640K), but within the 1 megabyte of 
  18385. memory that DOS can address directly. 
  18386.  
  18387. UNC or Universal Naming Convention:  A common method for accessing files on a 
  18388. network drive without using a "mapped" drive letter.  Names specified this way 
  18389. are called UNC names, and typically appear as \\server\volume\path\filename, 
  18390. where server is the name of the network server where the files reside, volume 
  18391. is the name of a disk volume on that server, and the path\filename portion is a 
  18392. directory name and file name. 
  18393.  
  18394.  
  18395. ΓòÉΓòÉΓòÉ 13.4.21. Glossary - V ΓòÉΓòÉΓòÉ
  18396.  
  18397. 4 A B C D E F G H I K L M N O P R S T U W X 
  18398.  
  18399. Variable Expansion:  The process of scanning a command line and replacing each 
  18400. environment variable name, alias parameter, or batch file parameter with its 
  18401. value. 
  18402.  
  18403. Variable Functions:  Functions provided by 4OS2 to manipulate strings, dates, 
  18404. and filenames; perform arithmetic; read and write files; and perform other 
  18405. similar functions.  Variable functions are similar to static environment 
  18406. variables or internal variables, but have parameters and can perform actions 
  18407. rather than just returning static information. 
  18408.  
  18409. Variable:  See Alias Parameter, Batch File Parameter, and Environment Variable. 
  18410.  
  18411. Virtual Disk:  See RAM Disk. 
  18412.  
  18413. Volume Label:  A special, hidden file placed on any disk, whose name 
  18414. constitutes a "label" for the entire disk. 
  18415.  
  18416. Volume:  See Disk Drive. 
  18417.  
  18418.  
  18419. ΓòÉΓòÉΓòÉ 13.4.22. Glossary - W ΓòÉΓòÉΓòÉ
  18420.  
  18421. 4 A B C D E F G H I K L M N O P R S T U V X 
  18422.  
  18423. Warm Reboot:  The process of restarting the computer with software, or with the 
  18424. keyboard (e.g. by pressing Ctrl-Alt-Del), typically without physically 
  18425. resetting any hardware devices.  See also Cold Reboot. 
  18426.  
  18427. White Space Character:  A character used to separate arguments on the command 
  18428. line.  The white space characters recognized by 4OS2 are the space, tab, and 
  18429. comma. 
  18430.  
  18431. Wildcard:  A character ("*" or "?") used in a filename to specify the 
  18432. possibility that any single character ("?") or sequence of characters ("*") can 
  18433. occur at that point in the actual name.  See also Extended Wildcard. 
  18434.  
  18435. Windows NT File System:  See NTFS. 
  18436.  
  18437.  
  18438. ΓòÉΓòÉΓòÉ 13.4.23. Glossary - X ΓòÉΓòÉΓòÉ
  18439.  
  18440. 4 A B C D E F G H I K L M N O P R S T U V W 
  18441.  
  18442. XOR (exclusive OR):  A logical combination of two true or false conditions.  If 
  18443. both conditions are false or both conditions are true the result is false; if 
  18444. either condition is true and the other is false the result is true.