コマンドプロンプトから編集中ファイルを実行したい

  1. いつもMery、本当に便利に使っています。ありがとうございます。

    どこかに情報があるのかもしれないのですが、自力で見つけられなかったので質問致します。

    趣味でぽちぽちプログラミングをしているのですが(初心者です)、Meryで書いたプログラムをMeryからコマンドプロンプトを呼び出して実行したいと思っています。

    外部ツール機能を使ってコマンドプロンプトをカレントディレクトリで呼び出すところまでは成功したのですが、どうしても編集中(保存済み)のファイルを引き渡せません。

    具体的には、pythonを使っているので、例えばtest.pyというファイルを実行したいのです。

    マクロも入れて使ってみたのですが、test.pyの処理の終了時に即コマンドプロンプトも終了してしまい、エラーメッセージがあっても見ることができません。

    何か良い方法があるに違いないと思うのですが・・・もしあればお教え下さい。お手数をおかけして申し訳ありません。

     |  ももんが  |  返信
  2. > マクロも入れて使ってみたのですが、test.pyの処理の終了時に即コマンドプロンプトも終了してしまい、エラーメッセージがあっても見ることができません。

    ということであれば、「コマンドプロンプトから編集中ファイルを実行」するところまでは成功しているのではないでしょうか。
    python のことはわかりませんが、Delphi だと、最後の行に Readln (一行入力関数) を書いておいて、リターンキーを押すまで止めておく、とかよくやります。python でもそんな手が使えるのではないかと思いますが、どうでしょう。

     |  honadaiku  |  返信
  3. >help cmd
    /K      "文字列" に指定されたコマンドを実行しますが、終了しません。
    4行目以降は「コマンドプロンプトを開く」から拝借
    --
    #title = "trypython"
    var doc = Document;
    var docPath = doc.FullName;
    var shell = new ActiveXObject("WScript.Shell")
    var path = document.Path

    shell.CurrentDirectory = path
    shell.Run("cmd.exe /K \"python " + docPath + "\"")

     |  クリ廃止  |  返信
  4. honadaikuさん、クリ廃止さん、返信ありがとうございます。

    マクロは、Meryのwikiからダウンロードして入れたもので、実は良く分かっていませんでした。未だに理解できているとは言いがたいのですが、何となく分かってきました。

    書いて頂いたスクリプトを押し込み、おかげさまでワンキーで実行できるようになりました。ありがとうございました!

     |  ももんが  |  返信
  5. >  honadaikuさん、クリ廃止さん、返信ありがとうございます。
    > マクロは、Meryのwikiからダウンロードして入れたもので、実は良く分かっていませんでした。未だに理解できているとは言いがたいのですが、何となく分かってきました。

    いや、マクロは多分分かってて、問題の特定ができなくて完成してなかっただけだよ
    閉じてるのがコマンドプロンプト側のせいだと
    (分かって|思えて|疑えて)いたかどうかが完成/未完成の分かれ目

     |  クリ廃止  |  返信
  6. うう、優しいお言葉、ありがとうございます。おかげさまで、とても便利になりました。
    できるはずだ、でもどうしてもできない、と悶々としていたので本当に助かりました。
    感謝です。

     |  ももんが  |  返信