2019-03-14-01-fieldコマンドに-Uオプションを追加
>> Site top >> weblog >> 月別アーカイブ >> 2019年03月のlog >> 2019-03-14-01-fieldコマンドに-Uオプションを追加
最終更新日付:2019/03/14 01:00:00
fieldコマンドに-Uオプションを追加
2019 年 03 月 14 日
昨日書いた、閲覧/編集ファイル名のカスタマイズで、想定している使い方のひとつとして以下のように書いた。
- ユーザー定義フィールドに EDITKEY というのを用意しておき、それを使う
しかし、現状の field コマンドでは、指定したユーザーフィールドのキー名が存在しないとエラーになる‥‥‥。これをなんとかした、という話。
先に field -u オプションについておさらいしておこう。field コマンドは、通常 field TITLE DATAID の要領で使用する。最初のパラメータの TITLE という部分は(共通部分もあるが)各種データに固有のフィールド名だ。この名前においては、ユーザー定義フィールドは USER1 〜 USER3 の3種類がある。しかし、この3つの何処に保存するかではなく、別の名前で管理したいということもある。field -u はそういう時に使用するもので、たとえば以下のようにすると、
field -u FOO DATAID "this is new value"
steam は DATAID で指定されたデータのユーザー定義フィールドで空いているところを探し、キー名 FOO と共に保存する。仮に USER1 が空いていたとすると以下のようになる。
USER1:FOO=this is new value
もちろん、すでに上記の USER1:FOO=〜 という形式になっているユーザー定義フィールドがあれば、そこを上書きすることになる。あまりキレイな方式ではないが、ひとまずユーザー定義フィールドと field -u オプションはそういうモノだ。
やや脱線だが、ユーザー定義フィールドの値を取得する場合に問題が発生することがある。それは、-u オプションを使う場合とそうでない場合が混在した時だ。たとえば、前述のデータに対して field -u FOO DATAID とやると文字列 "this is new value" が返るが、field USER1 DATAID とした場合には "FOO=this is new value" という文字列が返るのだ。だから、ユーザー定義フィールドを使う場合、少なくともデータ別にキー名でアクセスするのかフィールド名でアクセスするのかは決めておく必要がある。
さて、本題。field -u でキー名を指定してユーザー定義フィールドにアクセスする場合、指定したキー名を持つユーザー定義フィールドがないとエラーになる。基本的にそこの制御はユーザーに委ねられているので、指定した名前のキーがないのをエラーにするのは無体というものではない。しかし、「あれば欲しいがなければないで良い」という時もある。冒頭に書いた以下の閲覧/編集ファイル名生成の件はまさにそれだ。
- ユーザー定義フィールドに EDITKEY というのを用意しておき、それを使う
この場合、EDITKEY というキー名のユーザー定義フィールドがあればそれをファイル名に使用し、なければ使わない、としたい。しかし、field -u で取得に行くと無い場合にエラーになる。さてどうしたもんかというわけだ。
長くなってしまったが、結論は簡単だ。field -U というオプションを新規追加し、こちらは「なくてもエラーにせず、ただ空文字列を出力する」とした。おしまい。
コメント
このページのタグ
Page tag : fist
Copyright(C) 2005-2021 project-enigma.
Generated by CL-PREFAB.