Software Message Board
記事リスト| 新着記事| ワード検索| 過去ログ| 管理用

タイトル : 一行編集のパスの加工
投稿日: 2026/05/31(Sun) 18:32
投稿者: や

github.com/sharkdp/fd のfd(find)を使って実行ファイルパスリストや
ディレクトリパスリストを作りたいと思います。
参考:gigazine.net/news/20250324-fd-find-alternative/
実行ファイルは
github.com/sharkdp/fd/releases/download/v10.4.2/fd-v10.4.2-x86_64-pc-windows-msvc.zip
MacやLinux環境で動かしたいわけではなく、完全なWindows環境です。

書式は例えば以下のようになります。

%Ob fd -e exe -a . (path) > "%1\exepathlist.txt"

%Ob fd -t d -a . (path) > "%1\dirpathlist.txt"

(path)のところには、Windows環境であっても
区切りを/にするか、\\に変更したパスを入力する
必要があるみたいで以下3通りを試してみています。
出力はWindowsの\区切りで出てくるため、後加工は不要です。

(1)"%!1" → 手動で区切りを書き換え

(2)%*name(DCL,"%!1") → %*nameを使って\を/に加工

(3)%*regexp("%!1","s/\\/\\\\/g") → %*regexpを使って\を\\に加工
   %*regexp("%!1","s#\\#/#g") → 同じく、\を/に加工


(1)でも問題なくできるのですが、区切りを都度書き換えるのは面倒なため
(2)や(3)を(path)のところに挿入したいのですが、そうすると一行編集ダイアログが2度出てきます。

例えば、echo %*name(DCL,"%!1") や
     echo %*regexp("%!1","s/\\/\\\\/g")
    echo %*regexp("%!1","s#\\#/#g") 
    として2度ダイアログが出るのを確認しています。

2度目のダイアログは、パスの後半だけ表示され、区切り文字が\から/や\\に置き換えられたものになります。
一行編集が出るのは"%!1"のところだけで、2度もダイアログ出てくることはないのではないかと思うのですが
なぜこのような現象が起こるのかわからず、お手数ですがご教示いただけないでしょうか?

よろしくお願いいたします。


- 関連一覧ツリー (▼ をクリックするとツリー全体を一括表示します)