クラスタ名はグループ名からポン。
例によってスクリプトは唐突に。
JScript
----------------------------------------------------------------
// クラスタ名はグループ名からポン。
// 現在選択中のものをループ
for ( var i=0; i<Selection.count; i++ )
{
if ( Selection(i).IsClassOf( siGroupID ) )// もしもGroupだったら以下実行
{
var oGroup = Selection(i);// oGroup に選択中のブツ(すでにグループだと判明している)を取得
var oMembers = oGroup.members;// oMembers にグループのメンバを取得(コレクション)
for ( var j=0; j<oMembers.count; j++ )// メンバコレクションをループ
{
if ( oMembers(j).IsClassOf( siClusterID ) )// もしそのメンバクラスタだったら、
{
var oCluster = oMembers(j);// oCluster にそのメンバ(もうクラスタだと判明している)を取得
Logmessage( oCluster.name + " -- 改名 --> " + oGroup.name + " 親からもらった名前なのにけしからん。" );//人の道を説く
oCluster.name = oGroup.name;// クラスタの名前を、グループの名前に改名。
}
}
}
}
----------------------------------------------------------------
グループを選んで実行します(複数可)。
すると、グループの中にクラスタがあった場合、そのクラスタの名前を、グループの名前に改名してしまいます。 まったく、自分の名前をなんだと思っているのでしょう。せっかく親からもらったのに。 親になってみないとその気持ちはわからないと思いますがね。 以上。
クラスタマテリアルをグループで管理していて、かつ名前を一致させたいなどという場合なのでしょうか。 某社の某さんに恩を売るために書きました。
まあ、でも、そんなにアレなスクリプトでもありません。取得ですよ取得。 何を端緒にして何を取得し、そこから芋づるで何を取得していけば目的の場所にたどり着けるのか。 そういう思考過程で行けば、このくらいのことであればさほど難しくないと思います。
※という説明をするために、若干冗長な取得コードで書いてます。もうちょい短く書けるでしょうが、まあ、わかりやすいかな、と思って。
この場合は、Group を端緒にしてますね。 選んでいるものが Group かどうか判別して、Group だったら取得。 Group そのものをオブジェクトとして取得できたってことは当然、Group の名前も取得できます。
次に、Group から芋づるでメンバを取得します。 だって Group には Members ってものがあるんですから。 Group を取得済みのあなたには、メンバを取得する自由があります。おお、自由のなんと尊きことか。 これで Group に所属している人たちが取得できました。
メンバを取得したら、そのひとりひとりがクラスタなのか、そうじゃない普通のオブジェクトなのか、判別します。 もしクラスタだったら、クラスタオブジェクトとして取得します。
クラスタオブジェクトとして取得できたならもう、その名前は当然取得できます。
こうして、
1. グループを取得できた(名前はここでゲット)
2. グループからメンバを取得できた
3. メンバのひとりひとりを調べてクラスタだけを取得できた
4. クラスタにたどり着いたから、その名前を、さっきゲットしたグループの名前で上書きしてしまえ
という取得の連鎖が起こります。これがいわゆる芋づるです。
こんな寒い夜なのに、某社の某さんは今頃、全裸で正座です。 風邪引きますよ。
某社様、俺をTDとまで行かずともちょいテクニカル系スクリプト&パイプライン野郎として雇いませんか。 お役に立てそうです。 お安くしときますよ。 けけけけけ。
.
| 固定リンク


コメント