Reading Text Files into MS-DOS Environment Variables (66292)



The information in this article applies to:
    Microsoft MS-DOS operating system 3.1
    Microsoft MS-DOS operating system 3.2
    Microsoft MS-DOS operating system 3.21
    Microsoft MS-DOS operating system 3.3
    Microsoft MS-DOS operating system 3.3a
    Microsoft MS-DOS operating system 4.0
    Microsoft MS-DOS operating system 4.01
    Microsoft MS-DOS operating system 5.0
    Microsoft MS-DOS operating system 6.0
    Microsoft MS-DOS operating system 6.2
    Microsoft MS-DOS operating system 6.21
    Microsoft MS-DOS operating system 6.22

This article was previously published under Q66292

SUMMARY

This article describes the several steps needed to use the results of a query (using the FIND filter) as a replaceable parameter in a one or more batch files. A use for this would be to search for a specific file and then perform some action on or with this file. The file could then be used in one or more batch files as a replaceable parameter.

MORE INFORMATION

First, you need to set up a one-line file with the partial command
   set varname=
with no carriage return (CR) or linefeed (LF) at the end (this can be done with COPY CON by pressing CTRL+Z after the equal sign [=] and pressing ENTER).

The file would look like this on the screen:
   C:\>COPY CON INIT.TXT
   SET VARNAME=^Z
The following steps can be issued from the MS-DOS command prompt or from within a batch file:

    Search for a single directory entry and place the results in a text file.
          dir | find "dos" > textfile
    

    Append the two files into one batch file using the COPY command as follows:
          copy init.txt+textfile varset.bat
    

    Place the contents of the text file in a variable by running VARSET.BAT.
VARSET.BAT sets an environment variable equal to the directory entry found earlier. This allows the environment variable to be used as a replaceable parameter in later batch files. VARSET.BAT can be called from the command prompt or from within another batch file.

NOTE: This process works for directory names only if MS-DOS 5.0 or 6.0 is being used. Under MS-DOS 5.0 and 6.0, the /B switch must be used when you are searching for a directory name. The following is an example of searching for a directory under MS-DOS 5.0 or 6.0.
   dir /b | find "dos5" > textfile
NOTE: There is still a 127-character limit to the length of this variable, which includes the variable name and equal sign (=).

Modification Type: Major Last Reviewed: 5/10/2003
Keywords: KB66292