Reputation:
Is there a way to programmatically, through a batch file (or powershell script), put all folders in c:\Program Files
into the system variable PATH
? I'm dependent on the command line and really want to just start a program from the command line.
Yes, I'm jealous of Linux shells.
Upvotes: 4
Views: 664
Reputation: 7921
Doing this is very likely to break your computer, in the sense of invoking DLL Hell. As you invoke each executable, the OS will look through each directory in PATH
to find each DLL or even EXE referenced by that executable. It becomes highly likely that the OS will find the wrong ones as you add more directories to the PATH
.
So, a best practice is to avoid increasing the PATH
, and even to decrease it. Rather than implicit dependencies, make them explicit.
Instead, I recommend this approach:
bin
directory within your user home directorybin
directory to your user PATH
variablebin
directory for each application that you want to invoke from the command line (same name as the executable that you would type)SetLocal
, add the application's install directory (under %ProgramFiles%
) to the PATH
, then invoke the executable with the arguments from the command linePATH
, so that this script becomes the only way to invoke the executableUpvotes: 5
Reputation: 17804
Passing in "C:\Program Files" as a parameter into this batch file:
@echo off
FOR /D %%G IN (%1\*) DO PATH "%%G";%path%
Upvotes: 6