PS2.0CTP

PowerShellでテストすると良いよという話

Windows PowerShell Blog : Why Should I Test With PowerShell?で、PowerShellをテストに使うと良いぜ、という話が出ていて、10個ほど、利点が挙げられてたので訳してみました。コメント欄でもかかれてますけど、僕には具体的にどういうことなのか良く分か…

PowerBootsについて

Joel Bennettさんが作っておられる、PowerBootsが面白いです。RubyのGUIツールキット、ShoesにインスパイアされたというPowerShellのGUIモジュールです。PowerBootsの概要はPowerBoots: The tutorial walkthroughが良い感じです。最初のリリースが1/5、1/16…

0 -eq "" は$true

SqlServerから取ってきたDataTableをHTMLでテーブルにして表示する、というスクリプトをPowerShellで書いていて、以下のような感じなんです。 function Write-HTML($dt, $name){ $str = "<h2>$($name)</h2><table>" $str += "<tr>" $dt.Columns | % { $str += "<th>" + $_.ColumnName</th></tr></table>…

Windows PowerShell V2 CTP3出てた

会社ではなんの障害もなかったんだけど、家の環境では、実行ポリシーが"AllSigned"になってる上に、今まで通り、"Set-ExecutionPolicy RemoteSigned"を叩いても、"Windows PowerShell updated your execution policy successfully, but the setting is overr…

[void]をいつも忘れる

最近、結合テストのエビデンスをとる必要があり、久しぶりにPowerShellを使っています。テストのエビデンス作成は本当に辛く、コーディングの五倍くらい職務への意気が阻喪される作業なので出来るだけ手早く、間違いのないように遂行したい。あと、他の人も…

PowerShell.exeのここがおかしい!!

PowerShell.exeはデフォルトで用意されているPowerShellのホストなんですが、ちょっとおかしい、のではないかな? と思われる点があるので説明します。 PowerShellのスクリプトから、現在のホストアプリケーションにアクセスするのには、$hostという組み込み…

エディタについて

ここはPowerShellについて書きつつ、Microsoft MVPを目指すブログであるという初志をふと思い出したので、PowerShellについて書きますが、みなさんはPowerShellスクリプトを編集するとき、どんなエディタを使っているでしょうか? 僕は、gvim + ps1.vimです。…

PowerShellで(値を初期化しない、型付けされた)変数は宣言できるか?

Scripting Weblog : PowerShellで(値を初期化しない)変数宣言はできるのか? microsoft.public.windows.powershell : Testing for missing parameters in a function. PowerShellでは型付けされた変数が宣言できます。 PS > [int]$i = 38 PS > $i = "chatm…

UIAutomationについて(2)

Problem finding AutomationElement in PowerShell script - MSDN Forums PowerShellからUIAutomationが上手く動かせねぇー、って割とポピュラーな疑問だったらしく、ちゃんと検索したらいくつか出てきた。ここではBruce Payetteさんが答えておられる……。 問…

UIAutomationについて

msdn : UI オートメーションの基礎 MSDN Magazine : テストの実行: Microsoft UI オートメーション ライブラリ msdn : UI Spy (UISpy.exe) .NET Framework 3.0から追加になっていたらしい、UI オートメーションが面白い。何が出来るか、については、Microsof…

スクリプトブロックはクロージャではない

PowerShellのスクリプトブロックは全然クロージャではない、ということに気付きました。そもそも、何故クロージャだと思い込んでいたのかが謎ですが……。レキシカルクロージャ(笑)ではない、というのが正しいでしょうか。よくわからないですが……。 function f…

PowerShellからWin32APIを呼ぶ

PowerShellからWin32APIを呼ぶ方法は、Precision Computing - Get the Owner of a Process in PowerShell -- P/Invoke and Ref/Out Parametersを起源にして? 色々紹介されてるみたいなのですが、自分で使ってる奴を紹介します。 function New-PType() { [Ap…

PowerShellでテトリス

本当は七行で作りたかったんだけど、全然無理だった……。 ←→ 左右へブロック移動 ↓ ブロックを速く落とす(使わない) ↑ ブロックを下まで落とす Enter 回転(右のみ) $RANDOM = New-Object -TypeName 'Random' # 直径, 左上, ブロックの位置 × 4 $BLOCKS = @( @…

PowerShellでエラトステネスの篩

$a=,1;$s=2..200;while($s){$a+=$s[0];$s=@($s|?{$_%$s[0]})};$a 2008 Winter Scripting Games - 上級イベント 6が「1 〜 200 の範囲内に存在するすべての素数を計算」というものだったので、色々な人のスクリプトが見られます。上のは頑張って出来る限り短…

PowerShellで総当り(改)

全件組み合わせてる部分の{}があまりにもというかイミフなので書き直してみました。 $solve = 1..5 | % { ( $baker = $_ ) } | % { 1..5 } | % { ( $cooper = $_ ) } | % { 1..5 } | % { ( $fletcher = $_ ) } | % { 1..5 } | % { ( $miller = $_ ) } | % { …

PowerShellで総当り

紛れもない普通の総当たりです……。Non Determinism - Rubyのある風景で紹介されている、 Baker, Cooper, Fletcher, MillerとSmithは五階建てアパートの異なる階に住んでいる。Bakerは最上階に住むのではない。Cooperは最下階に住むのではない。 Fletcherは最…

PSProvider出来た!

とりあえず動くようになりました。ソースは id:ps1:20000101:1204560447、一緒に使う、書式指定ファイルはid:ps1:20000102:1204561784です。 現在読み込んでるAssemblyからリフレクションで型情報を全部持ってきて名前空間とクラスをディレクトリ、メソッド…

PowerShell Providerの作り方資料

ロードしているアセンブリの名前空間をディレクトリに見立てて、クラスや、クラスのメンバを表示できるPSProviderを作成しています。 参考にした資料をメモしておきます。 MSDN - How to Create a Windows PowerShell Provider ここに詳しい作り方が載ってい…

多次元配列について

InternalHostRawUserInterfaceのCell関係のメソッドはBufferCell[,](BefferCellの二次元配列)を引数にとったり、戻り値にしたりするんですが、PowerShellのみで多次元配列を作る方法がわからないので困っていました。 # この場合は、NewBufferCellArrayで生…

PsParserを使ってソースを色付きHTMLに変換する

はてなにはスーパーpre記法という、ソースコードをシンタックスハイライトして表示する機能があるのですが、これはPowerShellに対応していないようです。予約語の似ているRubyモードで貼り付けていこうかとも思ったのですが、PowerShell 2.0CTPではパーサを…

AppDomain.Format.ps1xml

参照:id:ps1:20080304 <Configuration> <SelectionSets> <SelectionSet> <Name>AppDomainTypes</Name> <Types> <TypeName>System.Reflection.RuntimeMethodInfo</TypeName> <TypeName>System.Reflection.RuntimeConstructorInfo</TypeName> <TypeName>System.Reflection.RuntimeProp…</typename></types></selectionset></selectionsets></configuration>

AppDomainSnapIn

参照:id:ps1:20080304 Imports System.Reflection Imports System.ComponentModel Imports System.Management.Automation Imports System.Management.Automation.Provider Imports System.Linq <RunInstaller(True)> _ Public Class AppDomainSnapIn : Inherits PSSnapIn Public </runinstaller(true)>…