マクロでわからない行があるんですNo.08933
cuma さん 05/01/26 07:21
 

cumaです。毎度お世話になっております。
本フォーラムでお世話になった方からずっと昔に教えて頂いたマクロを最近自分
でカスタマイズして見たくなりました。
以下の一行が全く理解出来ずヘルプを検索しても同様の内容が無いので理解不能
でした。

run $cmd + " /c dir /b /on \"" + $TargetDir + "\\*.htm\" > con";

作者様に直接聞けば良いと言われる内容ですが、最近連絡が取れなくなっており
ますので、汎用的な内容であれば常連の皆様ならばアドバイス頂けるかと思って
投稿してみました。

[ ]
RE:08933 マクロでわからない行があるんでNo.08934
cuma さん 05/01/26 07:31
 
cumaです。

先ほどの行ですが直前の行では

$cmd = getenv("COMSPEC");

と記述されているのを書き漏れました。


>
>cumaです。毎度お世話になっております。
>本フォーラムでお世話になった方からずっと昔に教えて頂いたマクロを最
>近自分
>でカスタマイズして見たくなりました。
>以下の一行が全く理解出来ずヘルプを検索しても同様の内容が無いので理
>解不能
>でした。
>
>run $cmd + " /c dir /b /on \"" + $TargetDir + "\\*.htm\" > con";
>
>作者様に直接聞けば良いと言われる内容ですが、最近連絡が取れなくなっ
>ており
>ますので、汎用的な内容であれば常連の皆様ならばアドバイス頂けるかと
>思って
>投稿してみました。

[ ]
RE:08934 マクロでわからない行があるんでNo.08935
Gertrud さん 05/01/26 08:04
 
Gertrudです。

私は作者ではないですが、アドバイスできればと思います。


>$cmd = getenv("COMSPEC");

これは、OSの環境変数である「COMSPEC」の値を取得しています。コマンドプロ
ンプトのパスです。コマンドプロンプトから「set COMSPEC」と打てば、cumaさ
んの環境でどういった値が取得できるか分かると思います。


>run $cmd + " /c dir /b /on \"" + $TargetDir + "\\*.htm\" > con";

これは結局、コマンドプロンプトを起動して、「dir」コマンドを実行している
だけです。

/bや /onの意味は、同じくコマンドプロンプトから「dir /?」と打てばヘルプが
表示されますので、ご理解できるのではと思います。

$TargetDirのディレクトリにある、「*.htm」に該当するファイル名を名前順に
取得しているのだと思いますが。。。

[ ]
RE:08935 マクロでわからない行があるんでNo.08938
cuma さん 05/01/26 21:02
 
 cumaです。

Gertrud様、早速のアドバイスありがとうございます。
おかげさまで本マクロの全体の流れがわかってきました。
この行が理解のキーだったような気がします。
ありがとうございます!!

>Gertrudです。
>
>私は作者ではないですが、アドバイスできればと思います。
>
>
>>$cmd = getenv("COMSPEC");
>
>これは、OSの環境変数である「COMSPEC」の値を取得しています。コマン
>ドプロ
>ンプトのパスです。コマンドプロンプトから「set COMSPEC」と打てば、
>cumaさ
>んの環境でどういった値が取得できるか分かると思います。
>
>
>>run $cmd + " /c dir /b /on \"" + $TargetDir + "\\*.htm\" > con";
>
>これは結局、コマンドプロンプトを起動して、「dir」コマンドを実行し
>ている
>だけです。
>
>/bや /onの意味は、同じくコマンドプロンプトから「dir /?」と打てばヘ
>ルプが
>表示されますので、ご理解できるのではと思います。
>
>$TargetDirのディレクトリにある、「*.htm」に該当するファイル名を名
>前順に
>取得しているのだと思いますが。。。

[ ]
RE:08935 マクロでわからない行があるんでNo.08946
cuma さん 05/01/27 21:37
 
Gertrudさん、皆さん、再度質問させてください。

 cumaです。

>>run $cmd + " /c dir /b /on \"" + $TargetDir + "\\*.htm\" > con";
>
>これは結局、コマンドプロンプトを起動して、「dir」コマンドを実行し
>ている
>だけです。
>
>/bや /onの意味は、同じくコマンドプロンプトから「dir /?」と打てばヘ
>ルプが
>表示されますので、ご理解できるのではと思います。

お陰様でほぼ理解出来たのですが以下の点だけ再度アドバイス願います。

 /c dir
 
と言う部分ですが、dir の前にある [ /c]部分の意味は何でしょうか?

[ ]
RE:08946 マクロでわからない行があるんでNo.08947
秀まるお さん 05/01/27 22:02
 
 コマンドプロンプトから「cmd /?」とすると説明が出てくるようです。

 あと、googleにて、"cmd /c"で検索すると、上から3番目に「Windowsコマン
ド集:(cmd)」ってのが出てきます。そこにもオプションの説明があります。

[ ]
RE:08946 マクロでわからない行があるんでNo.08948
cuma さん 05/01/27 22:17
 
cumaです。
皆様、さらに理解出来ないマクロ処理がございました。
どんな事しているのか解説頂ければ助かります。
なおマクロのヘルプは調査したつもりです。以下、置換処理と言う事しかわかり
ませんでした。

#i = 0;
while (1) {
 #i = #i + 1;
 replacedown "^.*\\f\\n", str(#i) + "=\\0\\n", regular;
 if (!result) break;
}

[ ]
RE:08946 マクロでわからない行があるんでNo.08949
アルビレオ さん 05/01/27 22:25
 
アルビレオです。

> /c dir
>
>と言う部分ですが、dir の前にある [ /c]部分の意味は何でしょうか?

cmd.exeやcommnad.comのオプションで
/c コマンド名
という形式で、/c の後に書かれた文字列をコマンドとして実行する機能です。
dirのようにcmd.exeやcommand.comの「内部コマンド」を実行したいとき、バッ
チファイルを実行したいとき、結果をリダイレクトして秀丸に取り込みたいとき
などに使います。

それ以外の普通のプログラムなら単純に
run "iexplore.exe " + $URL;
のような形式になります。

[ ]
RE:08947 マクロでわからない行があるんでNo.08950
cuma さん 05/01/27 22:25
 
秀まるお様、ありがとうございます。

 cumaです。

> コマンドプロンプトから「cmd /?」とすると説明が出てくるようです。
>
> あと、googleにて、"cmd /c"で検索すると、上から3番目に「Windows
>コマン
>ド集:(cmd)」ってのが出てきます。そこにもオプションの説明があります。

調査方法のアドバイスまでありがとうございます。
なるほどです。

[ ]
RE:08949 マクロでわからない行があるんでNo.08951
cuma さん 05/01/27 22:34
 
アルビレオさん、ありがとうございます。

 cumaです。
 
マクロのヘルプではわからない部分まであって奥が深いものですね。
マクロのメンテが自力で出来るまでの道のりはまだまだありそうです。
今後ともよろしくお願い致します。

[ ]
RE:08951 マクロでわからない行があるんでNo.08952
アルビレオ さん 05/01/28 01:23
 
アルビレオです。

>マクロのヘルプではわからない部分まであって奥が深いものですね。
>マクロのメンテが自力で出来るまでの道のりはまだまだありそうです。

マクロヘルプにはマクロについてしか書いてありませんからね(^^;

regularオプションのついた検索や置換を理解するには正規表現についてのヘル
プを見る必要があります。(HMJRE.HLP)

runコマンドは単に「プログラムを実行する」だけの機能なので、実行したプロ
グラムが何をするかはマクロヘルプではフォローしきれません。

これらを理解しないとマクロはいじれないのではなく、たまたまcumaさんが元に
しているマクロがこれらの機能を使っていたのでハードルが高くなってしまった
わけです。

[ ]
RE:08948 マクロでわからない行があるんでNo.08953
Iranoan さん 05/01/28 12:17
 
 cuma さん今日は、Iranoan です。
> #i = 0;
> while (1) {
>  #i = #i + 1;
>  replacedown "^.*\\f\\n", str(#i) + "=\\0\\n", regular;
>  if (!result) break;
> }
 簡単に説明すると、現在のカーソル位置から下方向へは全て置換するのが主
目的でしょう。

> どんな事しているのか解説頂ければ助かります。
 どの部分が解らないかも書いて頂けると説明がしやすいと思います。

[ ]
RE:08953 マクロでわからない行があるんでNo.08955
cuma さん 05/01/28 17:52
 
Iranoanさん、こんばんは

 cumaです。

> 簡単に説明すると、現在のカーソル位置から下方向へは全て置換するの
>が主
>目的でしょう。

了解しました。
この回答がこの部分の総論的な意味となるのですね。
まずは総論を知ってから、詳細勉強が一番ですね。
次は先ほどアルビレオさんから教えて頂いた。(HMJRE.HLP)にて正規表現を勉強
して理解して行きたいと思います。

[ ]
RE:08952 マクロでわからない行があるんでNo.08956
cuma さん 05/01/28 17:52
 
アルビレオさん、こんばんは

 cumaです。

>regularオプションのついた検索や置換を理解するには正規表現について
>のヘル
>プを見る必要があります。(HMJRE.HLP)

了解しました。

>これらを理解しないとマクロはいじれないのではなく、たまたまcumaさん
>が元に
>しているマクロがこれらの機能を使っていたのでハードルが高くなってし
>まった
>わけです。

なるほど。初期の勉強としてはちょっと選択が悪いと言う感じですねえ。
でも一番利用頻度が高いので勉強するのが必須と言う事でがんばるしか無いです
ね。

アルビレオさん、皆様、色々とお世話になります。(^^;)

[ ]