2007/11/05

体調が悪くてブログ更新とかWeb連載記事が止まっていてすみません。ほかの仕事もあまりできてませんし、オフラインイベントにも出てないですねー。

左半身(手足、顔など)がしびれたり震えたりしておかしいんです。あと胃腸の調子が悪くて…。

12/8は名古屋で、1月には大阪でスピーカーをやらせていただくので、それまでには治しておきたいところです。とりあえず検査中なのです。勉強会へのご参加お待ちしてます。

12/8と1月の講演はどちらも同じ内容でPowerShellがお題ですが、基礎編はちゃちゃっと流して少し「コマンドレットの組み合わせ」をテーマに応用に入ります。演題は「Windows PowerShell ステップアップ講座」にします。>中さんよろしくです

基礎編は大阪#5大阪#4などで復習しておいていただけると嬉しいです。

1月大阪は二コマいただいてまして、もう一コマで、「初音ミク」をテーマに少ししゃべろうかなと思ってます。初音ミクと作曲のイロハのイをやろうと思います。現在、検証中&調整中です。初音ミクは購入したんですが体験版が入手できなくてデモができるかどうか微妙なんですよ。でもデモできないと面白くない(というか意味があまりない)のでなんとか調整しますね。

作曲は自己流なので、講演もかなり偏ると思いますが、DTM(デスクトップミュージック)のここ10年の歴史をMIDIという単語をキーワードに少し語ったあと、素人でも、しかもお金をかけずともフィーリングで作曲できるということを示したいと思っています。そのあと、自作曲に乗せてミクさんに歌ってもらうという流れ。あ、どうしましょ、デモ用の曲を作らないと(汗

実は、すでにこんな曲を作ったりしていますがw
やまにょん氏と、謎の歌手largeさんsmallさんと組んで作った「まい☆びす」と「Happy! Lucky! Scripting!!」という電波ソングです。二つとも私が作詞、前者はやまにょん氏作曲、後者は私作曲です。

さて話はぜんぜんかわりますが、FizzBuzz問題(えぴさんとこにリンク)が解けて安心した人には、FizzBuzzDozz問題を解いてもらいます。私が今考えました。

【問題】
1から100までの数を表示するプログラムを書け。
ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、
3と5両方の倍数の場合には「Dozz」とプリントすること。

FizzBuzz問題は実は数学を知らなくてもできますが、この問題を美しく解くには数学の知識が必要かもしれません。個人的には、FizzBuzzで素質を調べ、FizzBuzzDozzで発展性を調べるという感じですね。これができないと将来的にはつらくなってくると思います。

元記事:http://blogs.wankuma.com/mutaguchi/archive/2007/11/05/105917.aspx

2007/10/04

・.で始まるタイトルのファイルが同期されない

例) .NETのサイトです.url

これは.で始まるファイルをUNIX風にhiddenとみなすためと思われます。個人的にはシェルがちゃんとurlファイルと認識してるんだから例外として扱ってほしかったですね。どこかに設定あります?

 

・アクセスするたびにお気に入りバーの順序が変わる

最終アクセス日時が変わるのでお気に入りをクリックするたびに、ほかのPCと同期してしまうため順序が狂う。

これはちょっと・・・

 

結論:Groove2007をIEのお気に入り同期に使うのは微妙かな。

元記事:http://blogs.wankuma.com/mutaguchi/archive/2007/10/04/99806.aspx

2007/05/30

Windows PowerShell: Active Directory を操作する -- TechNet Magazine, June 2007
http://www.microsoft.com/technet/technetmag/issues/2007/06/PowerShell/default.aspx?loc=jp/

今月号はADSIの話です。ただしPowerShellでADSIを扱うととにかく動作が変です。この記事でもいろいろ言い訳されてますがwここで取り上げられた記事のサンプルコードもたぶん実際には動作確認してないと思います。「友からの手助け」という段落はVBScriptからコンバートしたコードが載っていますがこれは嘘があります。&演算子はPowerShellにはないです。

ADSIはまだまだWSHで動かすのが吉だと個人的には思います。

元記事:http://blogs.wankuma.com/mutaguchi/archive/2007/05/30/78858.aspx

2006/12/18

12/16、わんくま大阪勉強会#4でPowerShellのセッションをさせていただきました。
いろいろと拙いところがありましたが、ご静聴いただきありがとうございました。

いくつかフィードバックやご質問をいただきました。

・PPTに書いてること以外をしゃべってほしい
→資料だけを読まれる方のためにPPTだけを見ても分かるようにしたのですが、せっかく参加された方のためにもそれ以外のことをしゃべったほうがいいですね。今回は時間がなくてなかなか難しかったのですが次回は改善させていただきたいです。

・デモが少ないので増やしてほしい
→これも時間の関係で今回ちょっとしかやれなかったのですが、次回1/12(金)はたっぷりやれると思います。シェルを叩くだけでなくスクリプトをその場で書いていくのもいいですね(今回他の方のセッションを見て思ったのですが)。ネタを仕込んでおかなければ…。

・実際に使える実用的なスクリプトサンプルが見たい
→時間の関係でスクリプトに関してはほとんど取り上げられなかったのですが、これも次回きちっとやります。PowerShellならではのスクリプトを鋭意研究中です。あまり運用系のことがわからないので、「こんなスクリプトがあったら嬉しい」などのご意見をお待ちしております。メールやここのコメント欄などでいただきたいと思います。

・IronPythonとの住み分けは?
→申し訳ありませんが、まだIronPythonを弄るところまでは行っていません。おいおい、研究していきたいと思います。現時点では個人的にはPowerShellは運用系、IronPythonは開発系なのかなと思います。

・安定性は?
→少し重いというのがありますが、安定性はまずまずなんじゃないでしょうか。

・仕組みは?
→現時点では正直なところ、なぜ動作するのか?なぜ.NETのクラスが動的に呼び出せるのか?というところまでは追い切れていません。
Windows PowerShell in Actionという書籍に詳しい解説があるそうなので、これから読んで、みなさんにお伝えできたらいいなと思っています(購入してるのですが積読状態です(汗)。

あと中さんからエイリアスを使う上では注意が必要というコメントをいただきました。これまでのコマンドプロンプトと同名のエイリアスがあるが、それらを書くときは、オプションなどは従来とは異なるということを言っておかないと混乱する…ということですよね?>中さん
エイリアスはシェルを叩く際はデフォルトで定義されている分には積極的に使っていってもいいと思いますが(コマンドプロンプトと混同しないように、との前提が必要ですが)、スクリプトで使うときはあえてエイリアスを使うこともないかなぁと思います。
?や%などはエイリアスというか文法チックなので、こちらのほうが分かりやすいような気もします。
エイリアスとは少し離れますが、パイプを多用したスクリプトの分かりやすい記法というのも研究中です。PowerShellはやはりオブジェクトが渡るパイプが肝なので、スクリプトでも活用していきたいのですが、多用するとどうしても読みにくくなってしまいます。そのあたりをうまく解消できればいいですね。

次回(1/12(金))はまたよろしくお願いします。まだまだ勉強中なのでなかなか講演、執筆ともに拙かったり進捗が遅かったりして申し訳ありません。取り上げてほしいこと、スクリプトのネタなどがありましたらぜひフィードバックをお寄せください。

元記事:http://blogs.wankuma.com/mutaguchi/archive/2006/12/18/51695.aspx

2006/07/14

元記事はhttp://winscript.s41.xrea.com/mt/archives/2005/09/com.htmlです。

PowerShellでは.NETのオブジェクトのほかに、COMのオブジェクトも呼び出すことができます。呼び出し方は$Fs = new-object -com Scripting.FileSystemObjectのようにします。

このサンプルは、深い階層に新しいフォルダを再帰的に作成していくスクリプトです。

function CreateFolderEx ($Path){
 $sParent=$Fs.GetParentFolderName($Path)
 if ($Fs.FolderExists($sParent) -And !$Fs.FolderExists($Path)) {
  [void]$Fs.CreateFolder($Path)
 } elseif ($Fs.FolderExists($Path)) {
 } else {
  CreateFolderEx($sParent)
  [void]$Fs.CreateFolder($Path)
 }
}
$Fs = new-object -com Scripting.FileSystemObject
CreateFolderEx "C:\test\test\aaaa\wwww\aaa" 

FolderExistsと($Path)の間にスペースを入れるとエラーになるのに注意です。(beta 2ではならなかったのに…)

function CreateFolderEx ($Path){

は、

function CreateFolderEx {
Param($Path)

と書くこともできますが、個人的にこちらの書き方は冗長じゃないかなあという気がします。betaとの互換性のために残されているだけかもしれません。

ちなみに、.NET FrameworkのSystem.IO.DirectoryInfoクラスを使うならこんな面倒なことは必要ありません。

$di = new-object System.IO.DirectoryInfo("C:\test\test\aaaa\wwww\aaa")
$di.Create()
元記事:http://blogs.wankuma.com/mutaguchi/archive/2006/07/14/32456.aspx

新しい記事のページへ


Copyright © 2005-2018 Daisuke Mutaguchi All rights reserved
mailto: mutaguchi at roy.hi-ho.ne.jp
プライバシーポリシー

Twitter

Books