Powershellを使うにあたってこれぐらい知っておけばなんとなとく使える内容を集めたメモ
参考サイト:
http://codezine.jp/article/corner/10
echo
Write-Host "hoge"
コマンドレット一覧取得
Get-Command
service取得
Get-Service
ヘルプ
Write-Host -?
Get-Help Write-Host
プロパティ表示
Get-Member
alias: gm
Get-Member -MemberType Method
Get-Member -MemberType Property
特定のプロパティ表示
Select-Object(select)
プロパティを一覧で表示
Format-List(fl)
Get-Command | fl
プロパティフィルタ
where-object
select-objectのエイリアスを表示したい場合
get-alias | where-object {$_.definition -match "select-object"}
{} はスクリプトブロック
$_はパイプで渡されたオブジェクトをさす
-eq 等しい
-match 正規表現
-like ワイルドカードよる比較
イベントログ取得
Get-Eventlog -logname system
グルーピング
Get-ChildItem . | Group-Object Extension
Group-Object(group)
スクリプト実行ポリシ変更
Powershellスクリプトを実行するためにはポリシを変更する必要がある
Get-ExecutionPolicy
コマンドライン引数
先頭の引数が$args[0]で受け取れる
定義されている関数一覧を取得
Get-ChildItem Function:
変数
$v = "value"
型を明示して宣言
[int]$v = 10
[int]$v = "hoge" => エラー
制御文
foreach ($i in 1..10){ ... }
if(条件){}elseif(条件)else{}
for (<初期化>; <条件>; <繰り返し処理>)
while (条件){}
例外処理
trap [<例外の種類>]
{
trap文本体
}
演算子
基本的な演算はその他の言語やシェルと似てるので省略
-replace 置換
-is 型演算
-contains コレクションに指定したものが包含
自動変数
Powershell内で暗黙に定義される変数
help about_automatic_variables | more
関数定義
function global:Hello{
write-host "hello world"
}
外から呼べるようにするにはglobal:をつける必要あり
プロファイル
Powershell起動時に読み込まれるファイル
PS > $profile
C:\Users\XXX\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
スクリプトブロック
$s = {$a + 3}
ブロック実行
& $s
エラー処理
$Errorにエラー内容が配列で保存される
$? 最後に実行したコマンドの終了状態
ErrorAction
Get-ChildItem Hoge -ErrorAction "continue" そのまま出力
Get-ChildItem Hoge -ErrorAction "silentlycontinue" エラー表示しない
Get-ChildItem Hoge -ErrorAction "stop" 処理を中止
デフォルトエラーアクションの設定
$ErrorActionPreference = "silentlycontinue"
デバッグ
Write-Debug $DebugPreferenceシェル変数によって表示制御
Set-PSDebug -trace 1; スクリプトのトレースを行う
Set-PSDebug -Strict 未定義の変数をエラーにする
Set-PSDebug -Step ステップ実行
$host.EnterNestedPrompt() ブレークポイント