有没有办法以编程方式,通过批处理文件(或powershell脚本),将所有文件夹c:\Program Files
放入系统变量PATH
?我依赖于命令行,并且真的想从命令行启动一个程序.
是的,我嫉妒Linux shell.
将"C:\ Program Files"作为参数传入此批处理文件:
@echo off FOR /D %%G IN (%1\*) DO PATH "%%G";%path%
在调用DLL Hell的意义上,这样做很可能会破坏您的计算机.当您调用每个可执行文件时,操作系统将查看每个目录PATH
以查找每个DLL,甚至是该可执行文件引用的EXE.当您添加更多目录时,操作系统很可能会找到错误的操作系统PATH
.
因此,最佳做法是避免增加PATH
,甚至减少它.而不是隐式依赖,使它们显式.
相反,我推荐这种方法:
bin
在用户主目录中创建目录
将该bin
目录添加到用户PATH
变量中
在bin
目录中为要从命令行调用的每个应用程序创建一个Windows CMD脚本(与您要键入的可执行文件的名称相同)
在每个脚本中,调用SetLocal
,将应用程序的安装目录(下%ProgramFiles%
)添加到PATH
,然后使用命令行中的参数调用可执行文件
从中删除相关目录PATH
,以便此脚本成为调用可执行文件的唯一方法