PowerShellのほんとうにどうでもいいメモ。ちょっとしたことをVB起動せずにできるのはありがたいですね。
ファイル日付の変更
(gi myfile.txt).lastwritetime= new-object datetime(2008,10,31,12,34,56)
new-objectはよく使うのに省略形がないんだな。get-date "2008/10/31 12:34:56"でもいいです。
md5ハッシュ値の計算
[string]::concat(([security.cryptography.MD5]::create().computehash((gi myfile.txt).openread())|%{$_.tostring("X2")}))
openread()など.NETの関数を呼び出す場合はgi(get-item)必須です。これがないとカレントディレクトリではなく起動ディレクトリのmyfile.txtが対象になります。
concatの二重カッコは|があるので必要です。MD5の代わりにSHA1もOK。
以下のようにすると現ディレクトリ配下の全ファイルのハッシュ値を表示できます。
dir -r|?{!$_.psiscontainer}|%{"$([security.cryptography.MD5]::create().computehash($_.openread())|&{process{$x+='{0:X2}'-f $_}end{$x}}) $($_.fullname)"}
ラムダ式&{...}を使った方法というところですが、"$(...)"の多用はやりすぎですな。