是否可以创建一个可以对环境变量进行持久更改的批处理文件?
例如,我的installer.bat脚本将一些文件复制到计算机文件系统中的随机位置.我想将该位置添加到PATH环境变量中,以便程序可以在当前会话中运行.
仅供参考 - 我正在安装的东西经常变化:我希望每次运行程序时都要进行全新安装.此外,我不想覆盖其他以前安装的程序副本,以防万一其他(较旧的)实例仍在执行.
我希望能够做到这样的事情:
rem install_and_run.bat install.bat myapplication.exe
不幸的是,这不起作用,因为install.bat永远不会"返回"主脚本.永远不会调用myapplication.exe.接下来我尝试了:
cmd /C install.bat myapplication.exe
不幸的是,这不起作用,因为这意味着install.bat在一个完全独立的cmd.exe shell中运行.这意味着一旦脚本终止,环境变量更改都不会保留,因为cmd.exe也会终止.
必须有一种方法来创建一个更改环境变量的批处理文件
有什么建议?
在你的情况下,你想要的是什么
rem install_and_run.bat call install.bat myapplication.exe
也就是说,call
用来调用install.bat
,这样控件就会返回install_and_run.bat
.
我认为你不明白环境变量是按进程的.您的批处理文件正在cmd.exe的实例中运行,并且该实例具有环境.当您编写时,cmd /C
您正在创建cmd.exe的新实例,该实例具有自己的环境.然后install.bat
对cmd.exe的新实例的环境进行"持久"更改.