有这样一个场景,需要在一台电脑上运行C#和matlab混编的程序,但是这台电脑为了其他软件需要已经安装了matlab,而且两个软件所需要的MCR版本不一致。
所以,这个时候设置临时系统环境变量,可以在不影响原有程序运行的基础上满足软件指定路径的需要。
其实原理很简单,安装软件的时候,都会修改系统环境变量Path,将自己的路径追加到最后面。
windows 环境变量Path前面优先级最高,如果找到命令就不会再向后找,只要将自己的设置的环境变量加到最前面就可以了。
命令行输入:
set path=%your_setpath%;%path%
然后再调用自己的程序,完成。
一下是bat脚本 参数里面有空格需要用双引号括起来
例如:
setClassPath.bat "D:\Program Files (x86)\JustForTest\"
setClassPath.bat 文件内容
@echo off
setlocal enabledelayedexpansion
set default_value=Your New Matlab Program Path
::set default_value=D:\Program Files (x86)\JustForTest\
::格式化括号
set "default_value=%default_value:(=^(%"
set "default_value=%default_value:)=^)%"
if "%1"=="" (
set prestr=%default_value%
) else (
set prestr=%1
)
set path=%prestr%;%path%
echo %path%
::这里调用自己的程序
设置临时环境变量只影响当前命令行及调用的程序
之前一直写不出来博客,很多问题在网上前辈都解决了。这个问题原理和实现也很简单,希望会有用。