Dymola mos 脚本:获取当前目录
Dymola mos script: get current directory
在mos脚本中,我想将当前目录(即mos脚本所在的目录)保存到一个字符串变量中。在第二步中,我想打开一个位于 net 目录中的库到 mos 文件。
我这样试过:
myCWD = Modelica.Utilities.System.getWorkDirectory();
但这将始终具有值 C:\USERNAME\Documents\Dymola
。
有没有办法从 mos 脚本中获取 mos 文件本身的路径?
或者有没有更好的方法来使用相对路径,或者从相对路径(但总是相对于mos文件)构建绝对路径?
cd
returns Dymolas 工作目录,所以它按预期工作。我不知道如何用 mos 脚本解决你的问题,但在 Modelica 函数中,Dymola 内置函数 classDirectory()
可以满足你的要求。
这是一个最小的例子:
function myScript
algorithm
Modelica.Utilities.Streams.print(classDirectory());
end myScript;
请注意,在 Dymola 中,函数在大多数情况下可以替代 mos 脚本。通常你可以简单地将你的mos脚本内容复制到一个函数的算法部分并调用该函数。
在mos脚本中,我想将当前目录(即mos脚本所在的目录)保存到一个字符串变量中。在第二步中,我想打开一个位于 net 目录中的库到 mos 文件。
我这样试过:
myCWD = Modelica.Utilities.System.getWorkDirectory();
但这将始终具有值 C:\USERNAME\Documents\Dymola
。
有没有办法从 mos 脚本中获取 mos 文件本身的路径? 或者有没有更好的方法来使用相对路径,或者从相对路径(但总是相对于mos文件)构建绝对路径?
cd
returns Dymolas 工作目录,所以它按预期工作。我不知道如何用 mos 脚本解决你的问题,但在 Modelica 函数中,Dymola 内置函数 classDirectory()
可以满足你的要求。
这是一个最小的例子:
function myScript
algorithm
Modelica.Utilities.Streams.print(classDirectory());
end myScript;
请注意,在 Dymola 中,函数在大多数情况下可以替代 mos 脚本。通常你可以简单地将你的mos脚本内容复制到一个函数的算法部分并调用该函数。