PowerShell: ◆CABファイルを展開するでは「Shell.Application」を使ったが、作成する方はこいつでは無く単独のアプリケーション「makecab.exe」を使うようだ。
展開の時と同様にWindows PowerShell で .CAB ファイルを作成するにサンプルがあるので使わせてもらった。
ただし、そのままでは動かなかったので若干修正している。
作り方としては、先頭に設定パラメータ、続いて圧縮対象となるファイル群のパスを含めた定義ファイル(Directive File)を作る。
あとは「makecab.exe」に定義ファイルを渡して起動するだけ。
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 | Function New-Cab($tagetFolderPath,$outFolderPath) { $ddfFile = [System.IO.Path]::GetTempFileName() $ddfHeader =@" ;*** MakeCAB Directive file ; .OPTION EXPLICIT .Set CabinetNameTemplate=Cab.*.cab .set DiskDirectory1=$outFolderPath .Set MaxDiskSize=CDROM .Set Cabinet=on .Set Compress=on "@ $ddfHeader | Out-File -filepath $ddfFile -force -encoding ASCII Get-ChildItem -path $tagetFolderPath | ?{ !$_.psiscontainer } | %{ '"' + $_.fullname.tostring() + '"' | Out-File -filepath $ddfFile -encoding ASCII -append } makecab /f $ddfFile del $ddfFile } #end New-DDF New-Cab "F:\Desktop\wk" "F:\Desktop" |
0 件のコメント:
コメントを投稿