PowerShellのあれこれ

PoweShell コンピュータ
PowerShell
沢山あるシェルやスクリプト言語の中でPowerShellを使う理由があるとしたらWindows10の標準のシェルで有る点です。
特別インストール作業をすることなくWindows10パソコンで有ればシェルを起動しスクリプトを実行はもちろんのこと開発環境のIDEも即実行可能です。スクリプト言語として、まじめに学ぼうとチャレンジしてみましたが、Microsoft社の作る製品の難解さに早々に挫折しました。
とはいえ便利であることは間違いないので、とりあえず動いて自分に役に立つスクリプトを書き散らかしています。こちらの記事ではPowersehllのスクリプトを作成する上で基本的な内容を随時更新していきたいと思います。
スポンサーリンク

比較演算子

-eq
==等しい
-ne
!=等しくない
-gt
>より大きい
-ge
>=以上
-lt
<より小さい
-le
<=以下

数学の記号的表記ではなく英文の短縮系の表記です。
比較演算子は良く使うので、記号として暗記すべきところですが、物覚えが悪く覚えれられません。
しかたがないので、自分の知っている適当な英単語を組合せ文法の怪しい英文を作りそれを覚えるようにしています。

  1. 等しい→equal→eq
  2. 等しくない→not equal→ne
  3. より大きい→greater than→gt
  4. より小さい→less than→lt
  5. 以上→より大きい又は等しい→greater than or equal to→ge
  6. 以下→より小さい又は等しい→less tahn or equal to→le

関数の呼び出し

関数の呼び出しの記述では、引数の前後のカッコは無し。CUIのコマンドの引数と同じ記述。
オブジェクトのメソッドはカッコが必須。

標準出力及び標準エラー出力のファイルへのリダイレクト

標準エラー出力をファイルへリダイレクト

PS>powershell.exe ./scriptname.ps1 2>./error.log

標準出力と標準エラー出力をファイルへリダイレクト

PS>powershell.exe ./scriptname.ps1 2>&1 >> ./scriptname.log

powershell.exeのオプション

-NoLogo
起動時にpowersehllのロゴを表示しない。標準出力をLogファイルに出力する場合で、ロゴが邪魔な場合に使う。
-NoExit
スクリプトを実行後powersehll.exeを終了しない。
スクリプトへのショートカットでコンソールの標準主力やエラーを確認した場合に使う。このオプションを付けないと終了するスピードが速すぎてコンソール文字を判別出来ない場合とか。
-NoProfile
プロファイルを読み込まない
-File <スクリプトファイルのパス>
実行するps1ファイルを指定する。

外部コマンドを実行するコマンドレット

# Start-Process

#オプション
# -FilePath 実行ファイルのパス
# -ArgumentList 実行ファイルの引数
# -Wait コマンドの終了をまつ。
# -PassThru 結果をオブジェクトで返す。
# -RedirectStandardOutput 標準出力
# -RedirectStandardError 標準エラー
# -NoNewWindow ウィンドウを新たに開かない

パス関連

パスから末尾の要素を取得

Split-Path パス -Leaf

パスから末尾の要素を取得

Split-Path パス -Parent

パスから拡張子を取得

[System.IO.Path]::GetExtension(パス)

パスからベース名(拡張子を除いたファイル名)を取得

[System.IO.Path]::GetFileNameWithoutExtension(パス)

コメント