牟田口大介 の紹介

PowerShell MVPの牟田口です。こちらでは重要な告知などをさせていただいています。メインブログは PowerShell Scripting Weblog です。

MSMVP受賞と記事リンク

牟田口です。おはようございます。今日付けでMSMVP for PowerShellを受賞いたしましたので、ここでもご報告させていただきます。今後ともよろしくお願いいたします。

わんくまのほうでTips記事を書きました。

[PSv2]リモートセッションを張るとき明示的に認証する
http://blogs.wankuma.com/mutaguchi/archive/2009/06/30/176828.aspx

これからPSv2の話を向こうでやっていく感じにしたいと思っていますので、随時こちらでもリンクをはりますね。

7/4大阪での講演もまだ若干席に余裕がありますのでご都合がつく方はぜひどうぞ。

大阪でPowerShell v2の講演をやります

牟田口です。こんばんは。

7/4(土)にわんくま同盟大阪勉強会で、PSv2のセッションを行います。
http://www.wankuma.com/seminar/20090704osaka30/Default.aspx

「PowerShell ver2について ~ついにWindowsサーバー管理環境の主流へ~」

Windows 7とWindows Server 2008 R2で標準機能となるPowerShell ver2を紹介します。PS2は簡単にコマンドラインで管理を行ったり、複数サーバーへリモートで同時コマンド実行したり、標準装備のスクリプト開発環境があったりするのが目玉です。
今後はWindowsサーバーOSおよびサーバー管理製品群はPSベースで管理をおこなうのが主体になります。今回はそんなPS2を一足早く見ていきましょう。

もしよろしければどうぞご参加ください! 

ながーい文字列を作ってテキストファイルに落とす方法

お久しぶりです。
最近ようやくPowerShell v2を触り始めました。(えー)
あのISEがよくできてていいですな。

 さて、今回もちょっとしたTipsを。というか試行錯誤を。v1の話です。

1GBのASCII文字列(なんでもいいんですが)をテキストファイルに書き込みたい。

まずためしたこと:

PS C:\Users\daisuke> Set-Content test.txt ("a"*1GB)
'*' 演算子が失敗しました:種類 'System.OutOfMemoryException' の例外がスローされました。
発生場所 行:1 文字:27+ Set-Content test.txt ("a"*1 <<<< GB)

いきなり1GBの文字列を発生させると、メモリが足りないって怒られました。環境にもよるんでしょうけどこれは正道ではなさそうです。

次に試したこと:

PS C:\Users\daisuke> 1..1GB|%{Add-Content test.txt "a"}
範囲の式が正しくありません。1073741823 は、範囲の最大サイズ (=50000 要素) を超えています。
発生場所 行:1 文字:4+ 1..1 <<<< GB|%{Add-Content test.txt "a"}

ループは5万回までしか回せないらしいです。むむむ。じゃあループ回数を減らそう。

PS C:\Users\daisuke> 1..1KB | %{Add-Content test.txt ("a"*1MB)}

うまく行きました!1GBのテキストファイルができあがりました。やった。

1MBも一回のループで書き込むのがいいのか分からないし、厳密にはちゃんとループ回数も考えてあげたほうがいいんだろうけど、1GB=1KB*1MBなのを利用してしまいました。

ただ、インデックスサーチ?かなんかが割り込みかけるみたいで、たまに

Add-Content : 別のプロセスで使用されているため、プロセスはファイル 'C:\Users\da
isuke\test.txt' にアクセスできません。
発生場所 行:1 文字:23
+ 1..1KB | %{Add-Content  <<<< test.txt ("a"*1MB)}

とか例外吐きます。ちゃんと排他制御も考えるとこれじゃダメっぽいです。ファイルにロックとかかけられないのかなー?

[Tips]数字をカンマ付き文字列に変換

PS C:\Users\daisuke> (122222222).ToString("#,#")
122,222,222

 知ってると意外と便利かも?

1GBは何バイトだーと聞かれたら

PS C:\Users\daisuke> (1GB).ToString("#,#")
1,073,741,824

と、さくっと答えるとカッコイイです。

 フォーマット演算子-fを使ってもできます。

PS C:\Users\daisuke> "{0:#,#}" -f 12345
12,345

複数の値を一気にするにはこうです。

PS C:\Users\daisuke> 123456,11,111111|%{"{0:#,#}" -f $_}
123,456
11
111,111

PowerShellをすごく高機能な電卓と思って最近は愛用しています。[math]のスタティックメソッドも使いがいがありますよ!

.NET開発者にもお勧め。intの最大値はいくつだ?って知りたいときは、

PS C:\Users\daisuke> [int]::MaxValue
2147483647

で一撃です。

はじめまして むたぐちです

はじめまして、むたぐち(牟田口大介)と申します。

HIROさんからご招待を受けて、こちらに参加させていただくことになりました。といっても実はずいぶん前からお誘いを受けていたんですが色々あって遅くなっちゃいました。

メインはわんくま同盟というところでScripting Weblogというのをやっていて、そちらでPoweerShellやその他スクリプト、プログラミングを中心に情報発信しています。また、オフラインでも講師などをやっています。ですので、今後もPowerShellの記事はそちらで中心に書いていこうと思っています。RSSはHIROさんに貼っていただいているので、左のサイドバーからご参照くださいませ。

また、今年の4月にPowerShellの書籍Windows PowerShell ポケットリファレンスを技術評論社さんから書かせていただきました。

PowerShellの公式サイトにも記事を寄稿させていただいたことがあります。 

ソーシャルネットワークサイトmixiでもPowerShellコミュニティの管理人をやっております。

PowerShellもですがWSHを昔からさわっていて、Windows Script Host Laboratoryというサイトも運営しています。

PowerShellの国内情報をリンク集としてまとめておりますので、そちらもご参照ください。

WSHについては@ITさんでチェック式 WSH入門 という連載記事を書かせていただいてます。

Microsoft MVP for Data Center Management – Admin Frameworks という賞を受賞していまして、一応、PowerShellのコミュニティ専門家というお墨付きはあるようですが、実はここにいらっしゃるみなさんほど活動してないのでごめんなさいです^^; 

他にもいろいろWebでは活動していまして(作曲とか)、ご興味がありましたらwinscript.jpという私が運営しているサイトをご覧ください。プライベート日記はこちらです。

宣伝ばかりで申し訳ないです^^;が、こんな感じでやっていこうと思いますのでよろしくお願いします。