2019年10月10日木曜日

設定ファイルの一部を取得

・設定ファイルから任意の設定項目を取り出し、クリップボードにコピーする
・文字コードがUTF-16のPPX.CFGがPPXフォルダにあることが前提


準備


1.BusyBoxからバイナリをダウンロードし、busybox64.exeをPPXフォルダに入れる
2.以下を編集して取込

_Command = { ; ユーザコマンド・関数
cfg2sed2clip = %Obsq %0busybox64.exe iconv -f UTF16 -t UTF8 %0PPX.cfg | %0busybox64.exe sed -n "/^%*arg(1)/{p; :loop n; p; /^}/q b loop }"  | %0busybox64.exe iconv -f UTF-8 -t CP932 | clip
}

KC_main = { ; PPcメイン窓
'@' ,*string o,name=%*regexp("%*input("" -title:"CFG部分取得" -mode:e -k:"*completelist /set /file:%%0PPX.CFG")","s/^(.*);/$1/") %:
  *ifmatch "/{/","%so"name"" %: *cfg2sed2clip "%so"name"" %: *stop
  *cliptext %so"name"
}

使い方


・@を押すと、PPX.CFGを補完候補リストにした一行編集が表示される
・X_vzs = 0のような一行形式のものは、その行をクリップボードにコピー
・KC_mainのような複数行に渡るものは、{}の中身を含めてクリップボードにコピー

ユーザーコマンドとして使う場合


_Command = { ; ユーザコマンド・関数
cfg2sed2clip = %Obsq %0busybox64.exe iconv -f UTF16 -t UTF8 %0PPX.cfg | %0busybox64.exe sed -n "/^%*arg(1)/{p; :loop n; p; /^}/q b loop }"  | %0busybox64.exe iconv -f UTF-8 -t CP932 | clip
cfgfazzy = *string o,name=%*regexp("%*input("" -title:"CFG部分取得" -mode:e -k:"*completelist /set /file:%%0PPX.CFG")","s/^(.*);/$1/") %:
 *ifmatch "/{/","%so"name"" %: *cfg2sed2clip "%so"name"" %: *stop
 *cliptext %so"name"
}

参考






1 件のコメント:

  1. 凄いカスタマイズ紹介ありがとうございます。こちらでは%0をC:\Program Files\PPxにしており、途中にスペースが入っているのでパスや引数を""でくくる必要があるのですが、その場合以下のようにすると良さそうです。
    _Command = {
    cfg2sed2clip=%Obsq "%0busybox64.exe" ""iconv -f UTF16 -t UTF8"" "%0PPx.CFG" | "%0busybox64.exe" sed -n "/^%*arg(1)/{p; :loop n; p; /^}/q b loop }" | "%0busybox64.exe" ""iconv -f UTF-8 -t CP932"" | "C:\Windows\SysWOW64\clip.exe"
    cfgfazzy = *string o,name=%*regexp("%*input("" -title:"CFG部分取得" -mode:e -k %%:*completelist /set /file:"%%0PPx.CFG")","s/^(.*);/$1/") %:
    *ifmatch "/{/","%so"name"" %: *cfg2sed2clip "%so"name"" %: *stop
    *cliptext %so"name"
    }

    返信削除