我有一个 MATLAB m 文件,我想在计算机之间共享。我还有一个简单的批处理文件,我想运行它来启动 MATLAB session 和 m 文件。问题是包含批处理文件和 m 文件的文件夹必须位于 MATLAB 搜索路径上,否则 MATLAB 在尝试从默认目录运行 m 文件时会出错。
我知道如何调用 MATLAB,以及如何让它打开 m 文件 (myfile.m),但如何告诉 MATLAB 当前目录,以便我可以先将它 cd 到该目录。比如如何将 chdir 的输出获取到命令?
这是一个简单的例子:当前批处理文件如下所示:
@echo off
matlab -nosplash -r "myfile"
但是我想做这样的事情:
@echo off
matlab -nosplash -r "cd chdir; myfile"
当然这是行不通的,因为 MATLAB 试图 cd 到一个不存在的目录 chdir。但是我怎样才能将 DOS 命令 chdir 的结果放入 MATLAB 的参数中呢?这样,无论文件夹在计算机上移动到哪里,单击批处理文件都会打开 MATLAB 并运行 m 文件。
谢谢
最佳答案
eryksun 发布了一个很好的解决方案。对于后代,这里是经过测试和工作的完整代码。
@echo off
matlab -nosplash -r "cd %~dp0 ,myfile"
谢谢你,eryksun,我知道它必须像那样简单。
关于windows - 从 Windows 批处理文件将当前目录传递给可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29326130/