2013年2月6日水曜日

◆CABファイルを作る

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 件のコメント:

コメントを投稿