मैंने आखिरकार एक स्क्रिप्ट बनाई है जो वास्तव में इसे सही ढंग से कर सकती है (पावरहेल के साथ)
यह WSPBuilder का उपयोग नहीं करता है क्योंकि मुझे अक्सर अनुबंधित किया जाता है और यह नए सॉफ़्टवेयर/अतिरिक्त फ़ाइलों को डाउनलोड करने के लिए असुविधाजनक है। यह ओओटीबी काम करता है।
function compress-directory([string]$dir, [string]$output)
{
$ddf = ".OPTION EXPLICIT
.Set CabinetNameTemplate=$output
.Set DiskDirectory1=.
.Set CompressionType=MSZIP
.Set Cabinet=on
.Set Compress=on
.Set CabinetFileCountThreshold=0
.Set FolderFileCountThreshold=0
.Set FolderSizeThreshold=0
.Set MaxCabinetSize=0
.Set MaxDiskFileCount=0
.Set MaxDiskSize=0
"
$dirfullname = (get-item $dir).fullname
$ddfpath = ($env:TEMP+"\temp.ddf")
$ddf += (ls -recurse $dir | ? {!$_.psiscontainer}|select -expand fullname|%{'"'+$_+'" "'+$_.SubString($dirfullname.length+1)+'"'}) -join "`r`n"
$ddf
$ddf | Out-File -encoding UTF8 $ddfpath
makecab /F $ddfpath
rm $ddfpath
rm setup.inf
rm setup.rpt
}
कृपया मुझे बताएं कि क्या मैं कुछ गलत कर रहा हूं और/या बेहतर हो सकता हूं।
संदर्भ के लिए
:
http://www.pseale.com/blog/StrongOpinionSayNoToMAKECABEXE.aspx
"files.txt" के कुछ मामलों में फ़ाइल पथ और नाम में रूप में अच्छी तरह "files.txt" में जोड़ा जाता है। फिर files.txt भी test.cab में होगा। – Hinek