我对批处理脚本还是比较陌生。我正在尝试编写一个脚本来执行一些 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 提示符下有效,但在脚本中无效?