1

私はまだバッチスクリプトに比較的慣れていません。いくつかの matlab コマンドを実行するスクリプトを作成しようとしています。基本的に、Windows 7 の 32 ビット バージョンと 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 プロンプトでは機能するのにスクリプトでは機能しない理由を誰か説明できますか?

4

1 に答える 1

2

以下の行にエラーがあります。

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

「プログラム」ではなく「プログラム」である必要があります。

編集:おっと!回答を投稿する前に、Ken White のコメントを読みませんでした。謝罪します...

于 2013-01-22T04:03:05.507 に答える