PowerShellの書き方がやっとわかってきて、日々のツールをどんどんPowerShell化しています。リリース用にファイルの最終更新日をそろえるために最初こんなので
function Set-FileTime($filename, $LastWriteTime) { $a = new-object System.io.FileInfo $filename $a.LastWriteTime = $LastWriteTime }
でもなー、第二引数がちゃんと時刻とは限らないしなーとか思って、$LastWriteTime.GetType().FullNameでもみようか…と思って書き始めたけど、こうすればいいだけでしたね。
function Set-FileTime([string]$filename, [System.DateTime]$LastWriteTime) { $a = new-object System.io.FileInfo $filename $a.LastWriteTime = $LastWriteTime }
第二引数が正しくDateTimeのTryParse()でtrueになる文字列であれば、自動的に型変換してくれました。最初GetType()使って型情報見て、TryParse()でOKならば…とか思っていたのがばかみたい(^^;。
それはともかく、私はほとんどシステムのprofile.ps1に追加するのですが、複数のサーバーの%systemroot%\system32\windowspowershell\v1.0配下にprofile.ps1を展開するの、どうやってます?ログオンスクリプトでもいいのだけれど…。