Code Aquarium

minazoko's blog -*- 水底のブログ -*-

PowerShell

(PowerShell) 簡易 timeit

Windowsでコマンドの処理時間計測したい場合みなさんどうしてるんでしょうかね。 PowerShell使えばそういうコマンドがあるだろうと思ったのですが、いやあるにはあるんです Measure-Command が。 PS C:\wk> measure-command {ping localhost}でもこのコマン…

(PowerShell)PowerShellで素数列挙

素数列挙スクリプト 素数列挙したくなったので、お手軽にPowerShellで書いてみました。 素数をファイルに保存し続けます。強制中断しても、再開するときに保存した素数を読み込んで続きから列挙。64ビット整数の範囲で延々素数を列挙できます。gist: primes.…

(PowerShell)複数行コメントはネスト不可

PowerShellの複数行コメントは で終わります。 ここはコード <# ここはコメント ここはコメント ここはコメント #> ここはコード ネストは一見できてそうに見えるけど、できません。 ここはコード <# -- コメント開始 ここはコメント <# -- ただのコメント …

(#PowerShell) ODAC でOracle操作

PowerShellでODAC (Oracle Data Access Components) PowerShellとOracleで検索するといくつかサンプルコードが見つかります。 しかしどうも釈然としない、コレじゃない感。すなわち ADO.Netに含まれる System.Data.OracleClient や OleDbではなく、Oracle社…

(PowerShell)ScriptBlockで文脈を作る。あと年賀状も。

この記事は,PowerShell Advent Calendar 2013の7日目の記事です。 なお、私のPowerShell環境は V3 です。以下すべて検証は V3でのみ行っています。 ScriptBlockで文脈を作る ScriptBlockで高階関数を作るとコンテキストをカスタマイズしているかのようなコ…

(PowerShell) $inputはコンテキストが違うと別物である

$inputはコンテキストが違うと別物である 勘違いしていました。 下記の4つのパイプライン変数 $input は同じものなんだろうなと思い込んでいましたが、違うものでした。 function my1 { $input } function my2 { begin{ $input } process{ $input } end{ $in…

(PowerShell) パイプラインはProcessで

2つのパススルー関数 サンプルコードその1 PowerShellの関数は一風変わっていて、内部に3つの役割をもったブロックを書くことができます。 function pass1 ([string] $Tag, [int]$MSec = 0){ begin{ Write-Host "BEGIN pass1 $Tag" } process{ [System.Thr…

(PowerShell)ダイナミックスコープなReduce

$1. 関数内再帰関数で Join-Paths 最初にちょっと寄り道。 前回エントリでは、引数を配列にして3つ以上のパス要素連結関数を書きました。 Join-Path 同様に可変長の引数にすることは出来ないでしょうか? できました。 function Join-Paths{ function rec (…

(PowerShell)配列の先頭要素だけ取り出す

分配束縛っぽい記述を使うと、配列の先頭要素と残りを分割できます。 $x = 1..5 $y,$z = $x $y #=> 1 $z #=> 2 3 4 5Lispの car と cdr の動作ですね。これは再帰処理と相性が良い形です。 例えば、PowerShellのパス文字列連結コマンドレット Join-Path は2…

(PowerShell) 配列を横一列に表示する

PowerShellでは、デフォルトでは配列は要素ごとに改行されて表示されます。 PS C:\> 1..5 1 2 3 4 5Write-Host を使うと、横一列に出力されます。 PS C:\> Write-Host (1..5) 1 2 3 4 5また、文字列内で変数展開を行うとスペースで連結した一行の文字列が得…