アペンドのリダイレクトリNo.05193
たなべ はじめ さん 00/03/01 14:32
 
仕様なのかも知れませんが、解決方法が分からないので、
お知恵を頂きたく投稿しました。
秀丸から外部プログラムを実行する場合
#マクロのrun文も同じでしょうか
command.com /c dir > hogehoge.txt
は、期待通りに実行されますが、
command.com /c dir >> hogehoge.txt
は実行されません。
#何かしているらしく、砂時計のアイコンは出ます。
何かヒントを頂ければとお願い申し上げます。

[ ]
RE:05193 アペンドのリダイレクトリNo.05203
秀丸担当 さん 00/03/01 19:23
 
>秀丸から外部プログラムを実行する場合
>#マクロのrun文も同じでしょうか
>command.com /c dir > hogehoge.txt
>は、期待通りに実行されますが、
>command.com /c dir >> hogehoge.txt
>は実行されません。

この >> には対応していません。
マクロのrun文も同様です。

[ ]
RE:05203 アペンドのリダイレクトリNo.05217
たなべ はじめ さん 00/03/03 12:43
 
>>command.com /c dir >> hogehoge.txt
>この >> には対応していません。
>マクロのrun文も同様です。

マクロはあまり詳しくないのですが、この場合、
1)command.com /c dir > temp.txt
2)秀丸でtemp.txtを開く
3)hogehoge.txtに追加保存する
4)temp.txtを削除する
という手順を踏むと良いのでしょうか。
もっと簡単な(定石の)手順があるのでしょうか。
皆様、よろしくご教示下さい。

[ ]
RE:05217 アペンドのリダイレクトリNo.05219
ENCODINGSHIFTJIS さん 00/03/03 16:33
 
>>>command.com /c dir >> hogehoge.txt
>>この >> には対応していません。
>>マクロのrun文も同様です。
>
>マクロはあまり詳しくないのですが、この場合、
>1)command.com /c dir > temp.txt
     command.com /c copy hogehode.txt + temp.txt hogehode.txt
     command.com /c del   temp.txt
run 3文のほうがわかりやすい?。

シェル的な操作なら 一時秀丸を離れて .BAT や WSH で実行したほうが
わかりやすいと思う。、
例えば .BAT を秀丸マクロで生成してそれを run 実行するなど。

参照 マクロ作者の 
 01099 00/03/01 18:43   RE:00873 複合文書 の中の
Dobat.mac
.BAT は動的発生ではありませんが後半の実行はしています。

__E__


[ ]
RE:05217 アペンドのリダイレクトリNo.05220
秀丸担当 さん 00/03/03 17:26
 
>マクロはあまり詳しくないのですが、この場合、
>1)command.com /c dir > temp.txt
>2)秀丸でtemp.txtを開く
>3)hogehoge.txtに追加保存する
>4)temp.txtを削除する
>という手順を踏むと良いのでしょうか。
>もっと簡単な(定石の)手順があるのでしょうか。
>皆様、よろしくご教示下さい。

マクロで書く場合、
  run "command.com /c dir >temp.txt";
  openfile "hogehoge.txt";
  gofileend;
  insertfile "temp.txt";
  save;
のようにするとできると思います。
ENCODINGSHIFTJISさんの言うように、BATファイルでやるほうが
簡単かもしれません。

[ ]
RE:05217 アペンドのリダイレクトリNo.05221
ひろ さん 00/03/03 19:48
 
 たなべ はじめさん今日は、ひろです。
> 1)command.com /c dir > temp.txt
 temp.txt を利用しなくても、hogehoge.txt を開いておいて、file end に
移動し、選択開始にしておいて、command.com /c dir > con を実行すればよ
いです。

 macro なら
//--------------- begin macro ---------------------------
if(existfile("hogehoge.txt")){
  newfile;
  run "command.com /c dir > con";
  appendsave "hogehoge.txt";
}
else{
  openfile "hogehoge.txt";
  selectall;
  run "command.com /c dir > con";
  save;
}
//--------------- end macro --------------------------------
のような処理になります。

[ ]
RE:05221 アペンドのリダイレクトリNo.05268
たなべ はじめ さん 00/03/08 17:22
 
マルチフォロー(?)で失礼いたします。
ENCODINGSHIFTJISさん、秀丸担当さん、ひろさん、
ありがとうございます。
様々なアプローチがあるのですね。いろいろ勉強になりました。
>  newfile;
>  run "command.com /c dir > con";

>  selectall;
>  run "command.com /c dir > con";
という「con」の使い方は、定石なのでしょうか。
「newfile;」や「selectall;」との絶妙な組み合わせ方、目から鱗です。
ところで、秀丸のマクロ等で用いる「>」や「con」は、
秀丸独自の仕様のものと理解ました。如何でしょう。

[ ]
RE:05268 アペンドのリダイレクトリNo.05278
ENCODINGSHIFTJIS さん 00/03/09 09:01
 
>ところで、秀丸のマクロ等で用いる「>」や「con」は、
>秀丸独自の仕様のものと理解ました。如何でしょう。

MS-DOS(UNIXのパクリ)時代からの正統的な物です。
コマンドライン実行(昔はこれしかなかった)の書き方です。

 > や >> は入出力リダイレクト と言います。
CON はコンソール(システムで既定のキャラクター型特殊デバイス名)

最近の関連することでは IE5.0 の concon 問題の話があります。

よりくわしくは、MS-DOSコマンドやUNIXシェル(bash,tsh...)の解説本を
シェル的操作を無理して秀丸内だけで頑張らなくてもよいことがわかります。

WSH なども使えるとwinの世界では快適になります。

__E__

 

[ ]
RE:05278 アペンドのリダイレクトリNo.05280
たなべ はじめ さん 00/03/09 14:40
 
ご親切なフォローありがとうございました。

なお、
>>ところで、秀丸のマクロ等で用いる「>」や「con」は、
>>秀丸独自の仕様のものと理解ました。如何でしょう。
という私の理解は、
リダイレクトリの動作がDOS窓と異なるので、これらの動作は、
与えられた文字列を秀丸内で解析して直接実行しているものであり、
所謂DOSに降りての動作(不勉強なので良く分かりませんが
シェルを呼び出してコマンドを実行するもの、ということでしょうか)
とは、異なる形で、擬似的に(バーチャルに?)リダイレクトリや
コンソールの動作を実現しているのでしょうか、
という風なことであったのです。

コンソールというのを余り使ったことがなかったので、
秀丸での動作が、MS-DOS時代からの動作と同じか否かが私には
分からないのですが、少なくとも「>>」(これの、名称は
正式には何なのでしょう)が仕様上組み込まれていない(らしい)
ので、そういう風に思いました。

この辺は分からなくても、実用上何ら問題ないので、
知的好奇心による発言として、おつきあいいただければ幸いです。

>最近の関連することでは IE5.0 の concon 問題の話があります。

Windows95や98の、不正なコマンドに対する処理の不足(バグ)の
話ですよね。偶然タイムリーにこの投稿をしたので、
とても良く理解できます。

>よりくわしくは、MS-DOSコマンドやUNIXシェル(bash,tsh...)の解説本を
>シェル的操作を無理して秀丸内だけで頑張らなくてもよいことがわかります。

実は、これまではバッチファイルを使っていたのですが、
いくつものファイルを持ち歩かないといけないことに不満を感じ、
マクロファイル一つを持っていけば、秀丸あるところどこでも
同じ操作が出来るようになればと思い、いろいろ模索中に
引っかかってしまったんです。

>WSH なども使えるとwinの世界では快適になります。

これは全く存じ上げませんが、捜してみます。

[ ]
RE:05280 アペンドのリダイレクトリNo.05284
ENCODINGSHIFTJIS さん 00/03/09 16:37
 
>リダイレクトリの動作がDOS窓と異なるので、これらの動作は、
>与えられた文字列を秀丸内で解析して直接実行しているものであり、
>所謂DOSに降りての動作(不勉強なので良く分かりませんが
>シェルを呼び出してコマンドを実行するもの、ということでしょうか)
>とは、異なる形で、擬似的に(バーチャルに?)リダイレクトリや
>コンソールの動作を実現しているのでしょうか、
>という風なことであったのです。

そのようです。パイプ結合もダメでは?最初のワードは必ず実行ファイル名。
カレントパス、検索パスもヘルプに書いていない。
[Win]+R のところとも違う。

>実は、これまではバッチファイルを使っていたのですが、
>いくつものファイルを持ち歩かないといけないことに不満を感じ、
>マクロファイル一つを持っていけば、秀丸あるところどこでも
>同じ操作が出来るようになればと思い、いろいろ模索中に
>引っかかってしまったんです。

直ぐできるのは、.BAT をマクロで動的に作って run をかけるのですね。
どこでも、の範囲が様々ですが シェル&スクリプト を求めているのは
わかります。公式的には JPerl , Ruby や JAVA なんでしょうが、秀丸は
動きが目に見えるメリットがある。(変数ウォッチ付きと同じ)
でもあまり秀丸に無理はさせられない、そこらあたりの読みですね。

>>WSH なども使えるとwinの世界では快適になります。
>これは全く存じ上げませんが、捜してみます。

Win に組み込みですから、どこにでもあるという条件はokです。タダでもある。
長い名前があってソースの文字数が多めなのはどうなんでしょう
読み易いのは English を読める人だけ。


[ ]
RE:05268 アペンドのリダイレクトリNo.05286
秀丸担当 さん 00/03/09 18:40
 
>ところで、秀丸のマクロ等で用いる「>」や「con」は、
>秀丸独自の仕様のものと理解ました。如何でしょう。

はい。そうです。秀丸独自にやっています。

[ ]