【发布时间】:2013-01-22 01:37:06
【问题描述】:
我对批处理脚本还是比较陌生。我正在尝试编写一个脚本来执行一些 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 提示符下有效,而在脚本中无效?
【问题讨论】:
-
没有
C:\Prorgram Files这样的文件夹。检查Program的拼写。批处理文件或命令行版本都不适用于该拼写。
标签: batch-file command