2007-07-01から1ヶ月間の記事一覧

Tracのバックアップ

会社で使っているTracのバックアップをするスクリプトをPowerShellで作ってみた。 readonly TRAC_HOME "D:\trac-0.1.1" readonly BACKUP_HOME "F:\Trac-Backup" readonly SVN_REPO (Join-Path $TRAC_HOME "svn_repo\projects") readonly SVN_ADMIN (Join-Pat…

ソースの行数をカウント

今日、なんとなくプログラムのソースを何行ぐらい書いているのか気になったので、さくっとワンライナーで書いてみた。 (dir -recurse -include *.cs -exclude *.Designer.cs | % { gc $_| % { $_.Trim() } | ? { $_ -ne "" -and -not $_.StartsWith("//") } …

イベントリスナーの登録

あるオブジェクト「A」で発生したイベントをあるオブジェクト「B」に伝える場合、通常「event」と「delegate」か 「Observer」パターンを利用するかのどちらかだと思う。 そうした場合、どちらかが片方に依存する事になるが、これが嫌な場合(そんなんあるか…

オブジェクトを生成してプロパティを追加するスクリプト

PowerShellにはオブジェクトに動的にプロパティを追加する「Add-Member」コマンドレットがある。 使い方はこんな感じ。 オブジェクト | Add-Member NoteProperty [プロパティ名] [値] 「NoteProperty」の他にスクリプトを値として追加できる「ScriptProperty…

ForEach-Objectって・・・

「ForEach-Object」コマンドレットって、C#の「foreach」と違って、「GetEnumerator」メソッドを呼び出しているわけじゃないんやね。 その証拠にこれができない。 # 一文字ずつ表示 PS > "Hello" | foreach { Write-Output $_ } Hello # 本当はこう出て欲し…

for or foreach

こう書くなら for($i=0; $i-lt10; $i++) { Write-Output $i } この方がイカス! foreach($i in 0..9) { Write-Output $i } さらにこんな関数を定義すれば・・・ function range([int]$num) { return 0..(--$num) } Pythonみたいになる。 foreach($i in range…

バイト表示

なんとなくPowerShellで「1kb」って打ったら「1024」って、出やがった。 PS > 1kb 1024メガバイト PS > 1mb 1048576ギガバイト PS > 1gb 1073741824テラバイト(これは対応してない) PS > 1tb 数値定数 1tb が正しくありません。 発生場所 行:1 文字:3 + 1t…

アセンブリをロードするスクリプト

アセンブリをロードするスクリプトを作ってみた。 Import-Assembly.ps1 param([string[]]$assemblyName) $assemblyName += @($input) if($args[0] -eq "-?" -or $assemblyName.Length -eq 0) { $commandName = [IO.Path]::GetFileNameWithoutExtension($MyIn…

NUnit += BDD

NUnitが2.4からBDD(Behavior Driven Development、振る舞い駆動開発)をサポートした。 NUnit自身は「Constraint-Based Assert Model」といってるけど。NUnit 2.4.1 ダウンロード BDDについては以下を参考 テスト駆動開発のテストは、テストか?機能的には…

ファイルを検索して削除する

カレントディレクトリからファイルを検索して、見つかったファイルを削除するスクリプト(Find-RemoveFile.ps1) param([string[]]$patterns, [switch]$recurse, [switch]$confirm) if($args[0] -eq "-?") { $commandName = [IO.Path]::GetFileNameWithoutEx…

ファイルを検索して開く

カレントディレクトリから特定のファイルを検索して、見つかったファイルをエディタで開くコマンドが欲しかったので、作ってみた。 ############################################################################### # 関数名: # Find-OpenFile (findop) …

リモーティングでのシリアル化のセキュリティ

[Serializable] public class Hoge { } こんな型を定義して、クライアント側でインスタンス化してリモーティングでSAOオブジェクトのメソッドを呼び出したら、 セキュリティ制限のため、Hoge型にアクセスできません みたいな例外が投げられた。 戻り値として…

ファイルの内容を検索して一覧表示

作業をしていて、適当なgrepコマンドが欲しくなったのでPowerShellで書いてみた。 ############################################################################### # 関数名: # Grep-Content (grep) # 説明: # 指定した文字列を含むファイルを検索して…