1

我对批处理脚本还是比较陌生。我正在尝试编写一个脚本来执行一些 matlab 命令,本质上是在 Windows 7 的 32 位版本和 64 位版本上运行 matlab 脚本。

当我在 DOS 提示符下运行命令时,一切正常,但是当它们作为脚本运行时,我收到一条错误消息,提示系统找不到指定的路径

脚本.bat

@echo off

set RESTORE=restoredefaultpath
set HOMEDIRECTORY=P:\ISARLAB\IsarLab-Dev
set SCRIPTNAME=packageScript
set MATLABCOMMAND="%RESTORE%; cd %HOMEDIRECTORY%; %SCRIPTNAME%"

echo launching Matlab 32 bit ...

::32 bit Matlab on Windows
set MATLAB32BIT="C:\Prorgram Files\MATLAB\R2012b-32bit\bin\matlab.exe"
echo %MATLAB32BIT% -r %MATLABCOMMAND%
%MATLAB32BIT% -r %MATLABCOMMAND%


@echo on

脚本的输出:

launching Matlab 32 bit ...
"C:\Prorgram Files\MATLAB\R2012b-32bit\bin\matlab.exe" -r "restoredefaultpath; cd P:\ISARLAB\IsarLab-Dev; packageScript"
The system cannot find the path specified.

我已确认指定的路径是正确的,并且在执行此 .exe 时启动了正确版本的 Matlab。

命令在 dos 提示符下运行(有效):

set RESTORE=restoredefaultpath
set HOMEDIRECTORY=P:\ISARLAB\IsarLab-Dev
set SCRIPTNAME=packageScript
set MATLABCOMMAND="%RESTORE%; cd %HOMEDIRECTORY%; %SCRIPTNAME%"
set MATLAB32BIT="C:\Prorgram Files\MATLAB\R2012b-32bit\bin\matlab.exe"
%MATLAB32BIT% -r %MATLABCOMMAND%

有人可以解释为什么这些命令在 dos 提示符下有效,但在脚本中无效?

4

1 回答 1

2

下面的行有一个错误:

set MATLAB32BIT="C:\Prorgram Files\MATLAB\R2012b-32bit\bin\matlab.exe"

应该是“程序”,而不是“程序”。

EDIT: Oops! I did not read Ken White's comment before posting my answer! I apologize...

于 2013-01-22T04:03:05.507 回答