ForEach-Objectコマンドレットによってフォルダー内の全てのファイルに対してコマンドを実行している。
展開コマンド
Windows 98, Meの更新プログラム用。cab形式を展開できるアーカイブソフトを使う方法もある。
Get-ChildItem -File | ForEach-Object { Start-process $_.Name -ArgumentList ("/c /t:" + "D:\fix\" + $_.Name) }
Windows 2000, XPの更新プログラム用。中身は差分データに加工した上で圧縮されているため、通常のアーカイブソフトで展開すると完全なファイルにならない。管理者権限のPowerShellで実行しないと、各更新プログラムを実行するごとに管理者昇格画面が表示されてしまう。
Get-ChildItem -File | ForEach-Object { Start-process $_.Name -ArgumentList ("/quiet /extract:" + "D:\fix\" + $_.Name) }
ファイルのバージョン情報などをCSVに出力
Get-ChildItem *.* -Recurse |
Add-Member -MemberType ScriptProperty -Name ProductVersion -Value {
$this.VersionInfo.ProductVersion
} -PassThru |
Add-Member -MemberType ScriptProperty -Name FileVersion -Value {
$this.VersionInfo.FileVersion
} -PassThru |
Add-Member -MemberType ScriptProperty -Name DirName -Value {
$this.DirectoryName
} -PassThru |
Select-Object -Property LastWriteTime, ProductVersion, FileVersion, Length, Name, DirName|
export-csv -path result.csv