読者です 読者をやめる 読者になる 読者になる

秀丸マクロのbatファイルからの実行

こんなことできたのか。。。

"C:\Program Files\Hidemaru\hidemaru" /x (hoge)\test.mac

(hoge)はmacroファイルの保存先をフルパス指定するほうが良いです。というか、フルパスにしないと中で相対パス指定しているファイルを見失って悲しいことになりました。。。

(source)


(追加)

と、思ったら前まできちんと動いてたマクロがうまく動かなくなった・・・orz

冒頭のようなバッチを作ってここで作ったバッチを実行させるとリストが取れなくなってる。従来運用でもたまに出ていた現象ではあるのだけど。。。

どうも、調べたところ秀丸マクロのrunは非同期実行だったらしい。

なので、拡張版らしいrunexを使ってみることにする。具体的には↓の感じ

title "mage実行";

question "CMチェック用ファイルを生成しますか?";
if( result == yes )
{
//  run "J:\\\\dv\\\\fget.bat";
    runex "J:\\\\dv\\\\fget.bat"
          , 1             //sync    0:async 1:sync
          , 0, ""         //stdin   0:none 1:auto 2:file 3:(reserve) 4:all 5:select
          , 0, ""         //stdout  0:none 1:auto 2:file 3:add file  4:new 5:insert 6:replace
          , 0, ""         //stderr  0:none 1:=out/auto 2:file 3:add file  4:new 5:insert 6:replace
          , 0, ""         //folder  0:none 1:current 2:specify 3:(reserve) 4:exe's folder
          , 2             //hide    0:auto 1:show 2:hide
          , 1             //nodraw  0:draw 1:no draw
          , 0             //auto    0:ansi 2:unicode
          ;
    openfile "J:\\\\dv\\\\mage.bat";
    replaceallfast "^" , "cmd /c J:\\\\dv\\\\chapter.bat \"", regular;
    replaceallfast "\.dv$" , "\"", regular;
    save;
    loadfile "J:\\\\dv\\\\mage.bat";
}

上手く行くようになった。非同期実行がありがたいことも多々あるし、この同期非同期を簡単に切り替えてくれる仕様は素晴らしいと思いました。