Windows PowerShell が便利な件

Windowsコマンドで日付計算が必要になったため、PowerShellを試してみた。
これはなかなか良さ気。

利用方法

cmdからプロンプトを起動・終了
powershell
end
cmdからスクリプト(ps1ファイル)の実行 ※1
powershell -File .\hoge.ps1

※1:実行ポリシー

各ps1ファイルの実行可否は、Windows PowerShell の実行ポリシー設定次第で決まる。
(実行ポリシーに関する詳細説明は、PowerShellで以下を実行することで参照可能。)

get-help about_signing

現在の実行ポリシーの確認は以下のコマンドで可能。(デフォルトは「Restricted」、つまりいかなるps1ファイルも実行できない状態だ。)

Get-ExecutionPolicy

実行ポリシーの変更は以下のコマンドで。ただし、コマンドプロンプトを管理者権限で実行(右クリック>管理者として実行)する必要がある点に注意。

Set-ExecutionPolicy {実行ポリシー}

実行ポリシーには以下の選択肢がある(制約が強い順)。

  • Restricted: 任意のスクリプトを実行不可
  • AllSigned: 信頼済発行元の署名ありのスクリプトのみ実行可能
  • RemoteSigned: 自作成の任意のスクリプトを実行可能。それ以外は、信頼済発行元の署名ありのもののみ実行可能
  • Unrestricted : 任意のスクリプトを実行可能(発行元、署名有無にかかわらず)

基本的には「RemoteSigned」を選択しておけば良いだろう。

コマンド例:明日の日付をyyyy/MM/ddで出力

$NOW_DATE=(Get-Date)
$TOMMOROW_DATE_YYYYMMDD="明日の日付:"+$NOW_DATE.AddDays(1).ToString("yyyy/MM/dd")
$TOMMOROW_DATE_YYYYMMDD