[ 新規に投稿する ]

コマンドライン引数で 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",(?=.*%str: =)(?=.*%) /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, hilight;
[ ]

[ 新規に投稿する ]