コマンドラインでのワイルドカードについて

  1. コマンドライン上でファイル名を指定する際に、
    >Mery.exe *.txt
    のように、ワイルドカードを使用したいのですが、「*.txt」というファイル名で新規作成になってしまいます。
    コマンドライン上でのファイル名指定にワイルドカードを使うことはできないのでしょうか?

     |  KK  |  返信
  2. 現在のところコマンドラインの引数はワイルドカードに対応していません。
    ご意見は今後の開発の参考にさせていただきたいと思います。

     |  Kuro  |  返信
  3. ご返信ありがとうございます。
    気長に待ちながら今後も愛用させていただきます。

     |  KK  |  返信
  4. cygwin入れてると簡単にできるのかな
    ls [表現] |xargs C:\Path\to\Mery\Mery.exe
    入れてない環境がないのでわからんがうちの環境ではこれでできる

     |  クリ廃止  |  返信
  5. あまり意識していなかったけど、コマンドプロンプトでは「*」でのパスの解釈のされ方がちょっと特殊みたいですねぇ…。Mery も含め、外部プログラムには「*」を引数にしてもパス展開はしてくれないみたいですね。
    よって、どうしても 「bat ファイルでできなきゃダメ!」とかそんな事情が無ければ Cygwin 使うのがやっぱり近道ですかね。
    そうすれば「<Mery配置パス>/Mery.ext *.txt」の形式で複数ファイルも開けますよ。

     |  yuko  |  返信
  6. > cygwin

    なるほど、その手がありましたか!

    Windows だと「*」のパスの解釈はアプリ側で自力で実装しないとダメみたいですね。一応、試作品で実装してみたのですが、他のコマンドライン引数と組み合わせた場合とかを考慮するとちょっと簡単には行きそうにありませんでした。

    例えば行数指定とか…

    Mery.exe /l 8 "C:\temp\*.txt"

    みたいな呼び出しをされると開いたファイル全部に対して 8 行目にジャンプさせなきゃならなかったり、となるとあまり手を入れたくない部分の仕様を変えないといけなくなるので、不具合でそうでちょっと不安です。

    できなくはないのですが…^^;

     |  Kuro  |  返信
スポンサーリンク