最終回となる今回は、PowerShellを使う上で頻繁にお世話になる便利なコマンドをまとめて紹介しよう▼。
ファイルの日付や時刻を取り出す
ファイルの命名や日時の計算などで利用頻度が高いのが、日付や時刻を取得する「Get-Date」だ。そのままでは「2017年7月24日 18:13:50」と出力されるので、ファイル名に使いたい場合は次のように入力する(図1)。日付だけにしたい場合は、FileDateTimeの代わりにFileDateを使う。
Get-Date -Format FileDateTime
「AddDays」という演算用メソッドを使えば日時演算も可能だ。例えば、取り出した日時に「3日と5時間4分」を加える場合は「(get-date).AddMonths(3).AddDays(5).AddHours(4)」を実行する。もし引き算したい場合には、数字の部分にマイナスを指定すればよい。Get-Dateが持つ演算用メソッドは次のコマンドを実行すれば確認できる(図2)。
Get-Date | Get-Member
処理を一定の時間停止させる
スクリプトをループさせる場合、処理を一定時間停止させたいときがある。例えば「while(-1){Get-Date}」を実行すると、処理時間の短いGet-Dateを瞬時に繰り返して、画面が同じ日時で埋め尽くされてしまう。一方、次のように「Start-Sleep」を指定すれば一定の時間、停止しながら処理が進んでいく(図3)。
while(-1){Get-Date; Start-Sleep -Seconds 1}
紹介できなかった便利なコマンドに「Tee-Object」がある。通常は、結果をファイルに出力した場合、コンソール画面では確認できないが、Tee-Objectを使うと可能だ。例えば、ファイルの一覧を画面出力すると同時に、ファイルにも保存したい場合は「Get-ChildItem -File | Tee-Object C:\tmp\log.txt」と入力する。