【问题标题】:batch commands not working in the script批处理命令在脚本中不起作用
【发布时间】: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


【解决方案1】:

下面一行有错误:

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

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

编辑:糟糕!在发布我的答案之前,我没有阅读 Ken White 的评论!对不起……

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-11
    • 1970-01-01
    • 1970-01-01
    • 2013-03-12
    • 2013-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多