表示中の全てのコマンド窓に同じ命令を与える

複数のコマンドウィンドウを開いた状態で、全ての窓に同じ命令を与える方法はありますでしょうか。例えば、実行ディレクトリを移動する際に、一つ一つの窓に cd を実行して回るのが面倒です。
具体的には8コアPCで計算しており、8つMATLABプロセスを並列起動しています。計算が終わったら次の計算(フォルダ)に移動するのですが、8回 cd する、もしくはアドレスバーにパスを8回コピペするのが手間なので、楽な方法があれば知りたいです。

 Accepted Answer

Kazuya
Kazuya on 4 Jan 2019

1 vote

複数のコマンドウィンドウを開いた状態というのは、MATLABプロセスが複数起動している状態でしょうか?
「あるフォルダに移動させる」などの特定のコマンドを起動時 (startup.m) に実行させることはできますが、、それぞれすでに立ち上げ済みのMATLABに同じコマンドを実行させる方法はパッと思いつきませんね。もし Parallel Computing Toolbox があれば、いろいろ細かく自動化できますけど。

4 Comments

shibuken
shibuken on 4 Jan 2019
>MATLABプロセスが複数起動しているありがとう状態でしょうか?
回答ありがとうございます。8コアPCで計算しており、8つMATLABプロセスを並列起動しています。
計算が終わったら次の計算(フォルダ)に移動するのですが、8回 cd する、もしくはアドレスバーにパスを8回コピペするのが手間なので、楽な方法があれば知りたいです。
Kazuya
Kazuya on 4 Jan 2019
Parallel Computing Toolboxがあれば楽ですが、COMサーバーを介してある程度まではできるかもしれません。
例えば、1つの元になるMATLABから他7つのMATLABをそれぞれ立ち上げて、1つのMATLABからそれぞれを操作する感じになります。
e1 = actxserver('MATLAB.Application');
e2 = actxserver('MATLAB.Application');
など。それぞれのMATLABの立ち上がった後は
e1.Execute('cd ..')
などとすると、それぞれのカレントディレクトリを変更できます・・。
shibuken
shibuken on 4 Jan 2019
>e1 = actxserver('MATLAB.Application');
を実行すると、
>Server Creation Failed: クラスが登録されていません
で止まりました。
actxserverは初めて使うので調べてみます…意外と高度な要求だったんですね。
Kazuya
Kazuya on 4 Jan 2019
プロセス間の通信は意外と面倒ですね・・。COMサーバーは Windows でだけ使える機能ですが、こちらも参考になるかもしれません。

Sign in to comment.

More Answers (0)

Products

Asked:

on 4 Jan 2019

Commented:

on 4 Jan 2019

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!