首页 > 解决方案 > 无法使用 Powershell 2.0 压缩文件

问题描述

Q1。我尝试了一些压缩方法,但在我的机器上都没有。我只能使用外部 zip 工具 7z.exe 来压缩文件,但我没有权限在 serverA 中安装 7z.exe 文件,也没有将 powershell 更新到 v5 的权限。当前使用 powershell v2 尝试如下,但没有一个工作。那么,还有其他方法可以向我介绍压缩文件吗?

Q2。下面是我正在使用 7z.exe 工具的查询(这个 serverB 确实带有 7z.exe)但我遇到了错误。我想用今天的日期压缩任何文件。

$timestamp = (Get-Date).ToString('yyyy-MM')
$source = "D:\csv\*.csv", "D:\csv2\*.csv"
$target = "D:\CSV2_$timestamp.zip"
$7zip = "D:\Program Files\7-Zip\7z.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)}
}

注意:两台服务器我也需要压缩文件,但服务器 A 没有 7z,但服务器 B 确实带有 7z.exe

标签: powershellpowershell-2.0window-server

解决方案


这应该有效:

Add-Type -Assembly "System.IO.Compression.FileSystem"
[System.IO.Compression.ZipFile]::CreateFromDirectory($sourcePath, $destinationZip)

请参阅添加类型:无法添加类型。找不到用于加载所需程序集的替代方法的程序集“System.IO.Compression.FileSystem”


推荐阅读