2013年6月30日日曜日

Powershellにて[角括弧]をエスケープする方法

ファイル名やHyper-Vの仮想マシン名では角括弧[]が使用出来ます。
ところが、PowerShellでは角括弧[]は正規表現で使用されるため、ファイル名や仮想マシン名で角括弧が使用されている時はそれをエスケープする必要があります。

ファイル名やフォルダ名を検索するGet-ChildItemでは-LiteralPathスイッチパラメータを使って逃げることができます。


PS C:\temp> Get-ChildItem -LiteralPath [test].txt





    ディレクトリ: C:\temp





Mode                LastWriteTime     Length Name

----                -------------     ------ ----

-a---        2013/06/30     22:31          0 [test].txt



ところが、Hyper-Vの仮想マシンを取得するGet-VMだと-LiteralPathスイッチはありません。
この場合`(アクサングラーブ、シフトを押しながら@)を2つ重ねてダブルクオーテーションで囲む必要があります。

PS C:\temp> Get-VM "``[Project1``]Win8"



Name           State CPUUsage(%) MemoryAssigned(M) Uptime   Status

----           ----- ----------- ----------------- ------   ------

[Project1]Win8 Off   0           0                 00:00:00 正常稼働中


正直面倒くさいので仮想マシン名は角括弧は使わないほうがいいでしょう。

Powershellのコードを綺麗に表示させる

よくブログでソースコードの部分を綺麗に表示させているページがあります。どうやればいいか調べたら解説しているページを見つけました。

Blogger:SyntaxHighlighter(1)ブログにソースコードを綺麗に表示させる

ここに書いてある通りにすればいいみたいです。
私はPowershellを表示させたいのでそれだけ表示させるようにしました。

Set-Location C:\Temp
Get-ChildItem

これを使っていろいろと書いて行きたいと思います。


MS系の知識について書きたいと思います

BloggersでMS系の知識について書いてみたいと思っています。
よろしくお願いします。