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

by 牟田口大介 4. 12月 2008 00:15

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

で一撃です。

現在のレート 5.0 (1人)

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

PowerShell | PowerShell入門

Windows PowerShell 入門(10)が公開されました

by HIRO 15. 10月 2008 21:43

最新のブログ

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

PowerShell | PowerShell入門

.NETアセンブリをロードするには(PowerShell 入門)

by HIRO 10. 9月 2008 23:45

今回は.NETアセンブリのロードについて説明したいと思います。

PowerShellは.NET Frameworkを基盤としており、あらかじめロードされているアセンブリがいくつかあります。

しかし、実際にやりたいことを実現するためには、ロード済みのアセンブリだけでは足りない場合があり、こういった場合は目的とするアセンブリをロードして、PowerShell上から使用できる様にする必要があります。

ロード方法ですが

[reflection.assembly]::LoadWithPartialName

を使用します。

たとえば Microsoft.VisualBasic 名前空間を使用できるようにするには

[reflection.assembly]::LoadWithPartialName("Microsoft.VisualBasic")

のようにしますが、このまま実行した場合は結果がAssemblyオブジェクトとして返されコンソールに表示されていまいます。

スクリプトの中からロードする場合には、出力されると邪魔な場合もありますので先頭に[void]を付加して

[void][reflection.assembly]::LoadWithPartialName("Microsoft.VisualBasic")

とすることをおすすめします。メッセージが必要な方は[void]は付加しないでください。

 

dllファイルのアセンブリのロードについても紹介しておきましょう。

この場合は

[reflection.assembly]::LoadFrom(dllファイル名)

を使用します。

こちらも同様にロード時にメッセージが出力されるので、回避したい方は先頭に[void]を付加してください。

せっかくなので1つサンプルを紹介します。

下記は Microsoft.VisualBasic をロードしてStrConvメソッドを使用できるようにして、ひらがなとカタカナを相互変換できるようにするものです。

PS C:\Work> [void][reflection.assembly]::LoadWithPartialName("Microsoft.VisualBasic")
PS C:\Work>
PS C:\Work> $vbHiragana = [Microsoft.VisualBasic.VbStrConv]::Hiragana
PS C:\Work> $vbKatakana = [Microsoft.VisualBasic.VbStrConv]::Katakana

上記を入力し終えたら、「ひらがな」から「カタカナ」へ変換してみましょう。

PS C:\Work> [Microsoft.VisualBasic.Strings]::StrConv("あいうえお", $vbKatakana)
アイウエオ

ついでに「カタカナ」から「ひらがな」へも変換してみましょう。

PS C:\Work>  [Microsoft.VisualBasic.Strings]::StrConv("アイウエオ", $vbHiragana)
あいうえお

このようにアセンブリをロードし、ぜひPowerShellで.NET Frameworkを有効活用してみてください。

最新のブログ

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

PowerShell | PowerShell入門

switch 基本構文(PowerShell 入門)

by HIRO 10. 9月 2008 22:39

この記事は以前 http://blog.hiros-dot.net/ に書いたものです。

PowerShellにおけるswitchは、ほかの言語のswitchと比較すると多くの機能を持ち備えています。

何回かに分けて説明したいと思います。

まず、基本構文ですが

switch -options (評価する式)
{
  <パターン> {実行するコマンドブロック}
  <パターン> {実行するコマンドブロック}
:
  default    {実行するコマンドブロック}
}

となります。

caseというキーワードがないことに気づきましたか? VB, C, C#などの言語を使用している方にはちょっと違和感があるかもしれません。

では、早速ですが、この基本構文を使用した例を見てみましょう。

PS > switch ( $a ) {
>> 1 { Write-Host "`$a は 1 です" }
>> 2 { Write-Host "`$a は 2 です" }
>> 3 { Write-Host "`$a は 3 です" }
>> 4 { Write-Host "`$a は 4 です" }
>> 5 { Write-Host "`$a は 5 です" }
>> }
>>
$a は 3 です

上記は変数$aを評価し、該当するコマンドブロックの実行を行います。

次に一致するパターンが複数あったらどうなるかをみてみます。

PS >  switch ( $a ) {
>> 1 { Write-Host "`$a は 1 です" }
>> 2 { Write-Host "`$a は 2 です" }
>> 3 { Write-Host "`$a は 3 です" }
>> 3 { Write-Host "`$a は three です" }
>> 4 { Write-Host "`$a は 4 です" }
>> 5 { Write-Host "`$a は 5 です" }
>> }
>>
$a は 3 です
$a は three です

上記のように該当するパターンすべてのコマンドブロックを実行します。

次にbreakを使用する例を見てみましょう。

先ほどの例のパターンの値が"3"(2つあるうちの最初のほう)にbreakを仕掛けます。

PS >  switch ( $a ) {
>> 1 { Write-Host "`$a は 1 です" }
>> 2 { Write-Host "`$a は 2 です" }
>> 3 { Write-Host "`$a は 3 です"; break }
>> 3 { Write-Host "`$a は three です" }
>> 4 { Write-Host "`$a は 4 です" }
>> 5 { Write-Host "`$a は 5 です" }
>> }
>>
$a は 3 です

breakが実行されると、コードはそこで中断されてswitchを抜けるため、2つめのパターン"3"のコマンドブロックが実行されていないことがわかります。

最後にdeafultキーワードについてみてみましょう。

defaultキーワードは、どのパターンにも該当しない場合に行う処理を記述することができます。

PS > $a = 7
PS > switch ( $a ) {
>> 1 { Write-Host "`$a は 1 です" }
>> 2 { Write-Host "`$a は 2 です" }
>> 3 { Write-Host "`$a は 3 です" }
>> 4 { Write-Host "`$a は 4 です" }
>> 5 { Write-Host "`$a は 5 です" }
>> default { Write-Host "該当なし" }
>> }
>>
該当なし

 

最新のブログ

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

PowerShell | PowerShell入門

breakとcontinue(PowerShell入門)

by HIRO 10. 9月 2008 22:38

この記事は以前 http://blog.hiros-dot.net/ に書いたものです。

breakはループ制御(foreach, for, while, do)やswichないで出現した場合、そこでそのコードを終了します。

以下はforループでの break 使用例です。変数 $i が3に等しくなるとbreakが実行され、コードを終了します。

PS> for ( $i = 0; $i -lt 5; $i++ )
>> {
>>   if ( $i -eq 3 )
>>   {
>>     break
>>   }
>>   Write-Host $i
>> }
>>
0
1
2

次に continue ですが continueが実行されると、実行フローはループの先頭へ移動し、次の反復処理を行います。breakと異なるのは、ループを終了しないことです。

以下はforループでのcontinue使用例です。if文で$i % 2が真の場合(計算結果が奇数)にcontinueが実行され、実行フローがループの先頭であるforに移動します。

PS > for ( $i = 0; $i -lt 10; $i++ )
>> {
>>   if ( $i % 2 )
>>   {
>>     continue
>>   }
>>   Write-Host $i
>> }
>>
0
2
4
6
8

最新のブログ

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

PowerShell | PowerShell入門

Calendar

<<  3月 2010  >>
月曜火曜水曜木曜金曜土曜日曜
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234

View posts in large calendar
Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2010 PowerShell from Japan!!