我想通过powershell创建文件夹及其文件的cab文件。 我试过下面的脚本,但它给了我错误。
C = [[1,2], [3,6]]
错误:
Param(
$filepath = "D:\Script",
$path = "D:\Script\aCab.cab",
[switch]$debug
)
Function New-Cab($path,$files)
{
$makecab = "makecab.makecab"
Write-Debug "Creating Cab path is: $path"
$cab = New-Object -ComObject $makecab
if(!$?) { $(Throw "unable to create $makecab object")}
$cab.CreateCab($path,$false,$false,$false)
ForEach ($file in $files)
{
$file = $file.fullname.tostring()
$fileName = Split-Path -path $file -leaf
Write-Debug "Adding from $file"
Write-Debug "File name is $fileName"
$cab.AddFile($file,$filename)
}
Write-Debug "Closing cab $path"
$cab.CloseCab()
} #end New-Cab
# *** entry point to script ***
if($debug) {$DebugPreference = "continue"}
$files = Get-ChildItem -path $filePath | Where-Object { !$_.psiscontainer }
New-Cab -path $path -files $files
我尝试从Micorosoft下载makecab.exe,但没有下载。 MakeCab.exe Link
有人可以告诉我,我做错了什么吗?
答案 0 :(得分:1)
您可以检查此列表中是否存在comobject:
Get-ChildItem HKLM:\Software\Classes -ErrorAction SilentlyContinue | Where-Object {
$_.PSChildName -match '^\w+\.\w+$' -and (Test-Path -Path "$($_.PSPath)\CLSID")
} | Select-Object -ExpandProperty PSChildName
你所犯的错误让我觉得没有注册。
c:\windows\system32
文件夹中的Windows 2000似乎存在MAKECAB.EXE命令。 Here链接到文档
答案 1 :(得分:1)
从Windows Vista开始的操作系统中的makecab.makecab COMObject has been removed。