4

有没有办法通过批处理文件(或powershell脚本)以编程方式将所有文件夹c:\Program Files放入系统变量中PATH?我依赖于命令行,真的想从命令行启动一个程序。

是的,我嫉妒 Linux shell。

4

2 回答 2

6

将“C:\Program Files”作为参数传入此批处理文件:

@echo off

FOR /D %%G IN (%1\*) DO PATH "%%G";%path%
于 2008-12-08T16:46:32.060 回答
5

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:

  1. Create a bin directory within your user home directory
  2. Add that bin directory to your user PATH variable
  3. Create a Windows CMD script in the bin directory for each application that you want to invoke from the command line (same name as the executable that you would type)
  4. In each script, invoke SetLocal, add the application's install directory (under %ProgramFiles%) to the PATH, then invoke the executable with the arguments from the command line
  5. Remove the relevant directory from the PATH, so that this script becomes the only way to invoke the executable
于 2008-12-08T17:35:44.113 回答