无法使用PowerShell 2.0压缩文件 [英] Unable to compress a file with Powershell 2.0

查看:11
本文介绍了无法使用PowerShell 2.0压缩文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

第一季度。我尝试了几种压缩方法,但在我的机器上都不起作用。我只能使用外部压缩工具7z.exe来压缩文件,但我没有在服务器中安装7z.exe文件的特权,也没有将PowerShell更新到v5的特权。当前使用的PowerShell v2 如下所示进行了尝试,但都不起作用。那么,还有没有其他方法可以为我介绍压缩文件?

  • Add-Type-ASSEMBLY"system.io.compression.filessystem"
  • 压缩-存档
  • 添加类型路径C:ReferenceDraftdoc.docx
  • C:ReferenceImagesturam2.vsd-压缩级别最优
    -DestinationPath C:ArchivesDraft.Zip

第二季度。以下是我正在使用的7z.exe工具(此服务器B确实附带了7z.exe)的查询,但我遇到了错误。我想压缩任何包含今天日期的文件。

$timestamp = (Get-Date).ToString('yyyy-MM')
$source = "D:csv*.csv", "D:csv2*.csv"
$target = "D:CSV2_$timestamp.zip"
$7zip = "D:Program Files7-Zip7z.exe"

#Compressed file
if (-not (test-path $7zip)) {throw '$7zip needed'} 
set-alias sz $7zip  

sz a -mx=9 $target $source
{
    Get-ChildItem $source | Where{$_.LastWriteTime -gt (Get-Date).AddDays(-1)}
}

注意:两台服务器I也都需要压缩文件,但ServerA不是7z,但服务器B确实有7z.exe

推荐答案

您必须使用更旧的Shell.Application COM Object method

function Extract-Zip
{
    param([string]$zipfilename, [string] $destination)

    if(test-path($zipfilename))
    {   
        $shellApplication = new-object -com shell.application
        $zipPackage = $shellApplication.NameSpace($zipfilename)
        $destinationFolder = $shellApplication.NameSpace($destination)
        $destinationFolder.CopyHere($zipPackage.Items())
    }
}

请注意,我认为这只适用于Windows Vista或Server2008或更高版本。据我所知,如果您正在使用Server2003--您不应该使用--那么您将不得不使用第三方软件。

这是不言而喻的,但您迫切需要更新服务器。我并不是说你需要安装最新的PowerShell。我是说,您显然正在使用Server 2008 R2或更早版本,而现在是2019年。

这篇关于无法使用PowerShell 2.0压缩文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆