コマンドライン引数で UTF-8 文字列の入力No.39993
yamayama117 さん 22/08/31 17:00
 
この度はお世話になります。当方 Windows 11 を、OS 言語設定 UTF-8 で使用してい
ます。
(OS 地域設定 → システムロケールの設定 → ベータ: ワールドワイド言語サポート
で Unicode UTF-8 を使用、をチェックしています)
秀丸は 64 bit 版の Ver 9.18 その後 9.19β7 で検証しています。

上記設定で以下のバッチファイルを引用文字列付きで起動しますと、秀丸で Grep が
行われます。しかし引数に日本語を用いますと、秀丸側で文字化けしてしまって希望
通りの動作をしません。

----
set str=%*
Start "" /b "C:\Program Files\Hidemaru\Hidemaru.exe" /gCrUO,".\*.md",(?=.*%s
tr: =)(?=.*%) /d(検索フォルダ)
----

おそらく秀丸側で UTF-8 文字列の引数が処理されていないのが原因のような気がし
ていますが、起動オプションの調整で制御可能でしょうか。ご助言いただけますと幸
いです。


[ ]
RE:39993 コマンドライン引数で UTF-8 文No.39994
秀丸担当 さん 22/08/31 17:45
 
バグ情報ありがとうございます。
確かにそうなってしまうことが確認できました。
今後のバージョンでできるように修正させていただきます。

今できる方法でやるとしたら、マクロを使う必要がありますが、コマンドラインのパ
ラメータの/aで文字列を渡す方法があります。
マクロは、例えば以下の内容を、マクロファイル用のフォルダにgrep.macとして保存
します。
grep getarg(0),"*.txt",".",regular;
コマンドラインは、以下のような感じで、/aオプションのところに書いたものがマク
ロのgetargで取得できます。
"C:\Program Files\Hidemaru\Hidemaru.exe" /d "c:\New Folder" /x grep.mac /a"
検索文字"

[ ]
RE:39994 コマンドライン引数で UTF-8 文No.39995
yamayama117 さん 22/08/31 18:53
 
早々のご返答ありがとうございます。
秀丸マクロは十分理解していませんが、ヘルプをみて調べてみたいと思います。
今後 β 版等でご対応いただければ汎用性の点で大変助かります。
まずはお礼まで。

[ ]
RE:39995 コマンドライン引数で UTF-8 文No.39998
yamayama117 さん 22/09/01 14:20
 
以下マクロを適宜参照することで、汎用性を保ちつつ希望通りの動作をさせることが
できました。ご助言ありがとうございました。

ファイル名 grep.mac
内容 grep getarg(0), getarg(1), getarg(2), regular, nocasesense, hilight;

ファイル名 grepdialog.mac
内容 grepdialog2 getarg(0), getarg(1), getarg(2), regular, nocasesense, hili
ght;

[ ]