2008/02/22

VBScript から Windows PowerShell へ
http://www.microsoft.com/japan/technet/scriptcenter/topics/winpsh/convert/dim.mspx

によると、

$a = [string]

でできるとあるんですがこれは嘘ですね。

PS C:\Users\daisuke> $a = [string]
PS C:\Users\daisuke> $a

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     String                                   System.Object


PS C:\Users\daisuke> $a -is [string]
False
PS C:\Users\daisuke> $a.gettype().fullname
System.RuntimeType

RCとかの段階ではそうだったのかもしれませんが…

New-Variableコマンドレットを使っても初期値を-valueパラメータで与えないと駄目です。

結論として「PowerShellには(値を初期化しない)変数宣言をする方法はない」となると思います。

追記。

と思ったらできました。

New-Variable -name x

これで$xという$nullの変数ができます。型は指定できないみたいですが。

元記事:http://blogs.wankuma.com/mutaguchi/archive/2008/02/22/124522.aspx

2007/06/06

PowerShellは@や$をよく使いますが、カッコとの組み合わせでたまに意味不明になってくるので、まとめてみました。たぶん組み合わせを網羅してると思います。

$a
# 普通の変数宣言。
 
$(1)
# 1(System.Int32)と等しい。中の式が返す値を出力する。
@(1) # 1要素だけ含まれた長さ1の配列(System.Object[])(,1でもよい)



@(1,2,3) # 普通の配列。(単に1,2,3でもよい)
$() # null
@() # 空の(長さ0の)配列(System.Object[])
@{} # 空の連想配列(System.Collections.Hashtable)
@{a=1;b=2} # 普通の連想配列。
${hello world} # 空白などを含む場合の変数宣言
${C:file.txt} # カレントにあるファイルの中身を取得
元記事:http://blogs.wankuma.com/mutaguchi/archive/2007/06/06/79806.aspx


Copyright © 2005-2018 Daisuke Mutaguchi All rights reserved
mailto: mutaguchi at roy.hi-ho.ne.jp
プライバシーポリシー

Books

Twitter