How to import a text file to a environment variable in a batch file

I am trying to use a path previously stored as a text file to set an environment variable in a windows batch file. I had thought that type file.txt >> %var% would work but it didn't. This should be simple but I need help figuring it out.
ProTek2Asked:
Who is Participating?
 
sjklein42Connect With a Mentor Commented:
File containing path:

path.txt
c:\foo\bar

Open in new window


command:
for /F %i in (path.txt) do set mysymbol=%i

Open in new window


inside a batch file setPathToFileContents.bat (note doubled %):
@for /F %%i in (%2) do @set %1=%%i

Open in new window



call this way

setPathToFileContents mysymbol path.txt

set
...
mysymbol=c:\foo\bar
...

Open in new window


0
 
MARTiNCommented:
Hi, I think you should use "Echo" instead of "Type" if you'd be doing it that way or instead use the "SET" command inside of the batch file instead.
0
 
ProTek2Author Commented:
I'm sure that my inexperience with scripting was the only reason that I didn't follow it exactly. However, I realized after that problem was solved that I hadn't asked the right question. The answer saves the path but it gives no way to find WHERE it is saved when needed.
0
 
sjklein42Commented:
Yes.  You can use the "path" by referring to it as %mysymbol%

For example, after calling

setPathToFileContents mysymbol path.txt

You can then use that path:

dir %mysymbol%

Of course, you don't need to call it "mysymbol".
0
 
ProTek2Author Commented:
Not the way I'm using it. The initial batch file will be started by a downloaded setup package and in that .cmd file, PowerShell is used to restart it with the "runas" parameter because administrative privileges are required for the other activities, not the least of which is moving a file into the system path for subsequent use. When the cmd shell is invoked, it is running in c:\windows\system32 instead of the download folder and the normal variables become null. The path may have been saved in a file but the path to the file (which holds the path to the file) is also lost. It turns out that a PushD created variable survives the elevation process and I used that to concatenate the "move" directive that I needed.

But thank you for your information. I'm sure that it will come in handy at some point.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.