windows - 从 Windows 批处理文件将当前目录传递给可执行文件

标签 windows matlab batch-file

我有一个 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/

相关文章:

c# - 我可以使用 OleDbConnection Excel ACE 驱动程序从不可搜索的 System.IO.Stream 而不是文件中读取 Excel 文件吗?

ruby - Windows Liquid 异常 : Failed to get header 上的 Jekyll

matlab - 检测 MATLAB 表中的单元格条目

matlab - 如何在 MATLAB 中从 zip 存档中提取单个文件?

powershell - Powershell 是一种足够成熟的技术供企业使用吗?

javascript - 在运行 javascript 时防止 Windows 提示打开

windows - 一段时间后收不到消息

windows - 计算 CMD 和批处理文件中的字母数

matlab - Softmax 回归的向量化实现

windows - 批量的“嘟嘟”噪音文件在哪里?