[リストへもどる]
一括表示

タイトル一行編集のパスの加工
記事No5240
投稿日: 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度もダイアログ出てくることはないのではないかと思うのですが
なぜこのような現象が起こるのかわからず、お手数ですがご教示いただけないでしょうか?

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


タイトルRe: 一行編集のパスの加工
記事No5242
投稿日: 2026/05/31(Sun) 22:49
投稿者TORO
関数内で %! を使うと指摘された状態になるのを確認しました。
+1 で修正しました。


タイトルRe^2: 一行編集のパスの加工
記事No5244
投稿日: 2026/06/01(Mon) 00:26
投稿者
+1で直りました。素早い修正対応ありがとうございました。