批处理命令在脚本中不起作用

时间:2013-01-22 01:37:06

标签: batch-file command

我仍然是批处理脚本的新手。我正在尝试编写一个脚本来执行一些matlab命令,实际上是在32位版本和Windows 7的64位版本上运行matlab脚本。

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

script.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提示符下工作但不在脚本中工作吗?

1 个答案:

答案 0 :(得分:2)

以下行有错误:

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

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

编辑:哎呀!在发布我的回答之前,我没有读过Ken White的评论!我道歉......