#PS2.0压缩为.zip文件:

$zip = "D:\audit_log\test.zip"
New-Item $zip -ItemType file
$shellApplication = new-object -com shell.application
$zipPackage = $shellApplication.NameSpace($zip)
$files = gci D:\audit_log\*.log

foreach($file in $files)
{
$zipPackage.CopyHere($file.FullName)     #MoveHere() 将文件移动到.zip压缩包
Start-sleep -seconds 5
}

#注:该脚本通过异步方式将文件添加到.zip压缩包,故无法判断当前文件是否已添加到压缩包成功,当目前的文件还未完全添加到.zip压缩包时,下一个文件再添加时会出现错误,无法添加到压缩包,所以可能会丢失文件,如果能确定文件压缩时长,可以使用Start-Sleep方法进行延时

CopyHere同样支持对整个文件夹的压缩,所以以上代码可以更改为如下:

$zip = "D:\audit_log\test.zip"
New-Item $zip -ItemType file
$shellApplication = new-object -com shell.application
$zipPackage = $shellApplication.NameSpace($zip)
$zipPackage.CopyHere("D:\audit_log\abc")

#如果把CopyHere改为MoveHere,将会在压缩完成后删除源文件

#将需要压缩的文件全部放到目录abc下,然后对abcc整个目录进行压缩

###############################

PS2.0解压zip文件:

Function Unzip-File()
{
param([string]$ZipFile,[string]$TargetFolder)
#确保目标文件夹必须存在
if(!(Test-Path $TargetFolder))
{mkdir $TargetFolder}
$shellApp = New-Object -ComObject Shell.Application
$files = $shellApp.NameSpace($ZipFile).Items()
$shellApp.NameSpace($TargetFolder).CopyHere($files)
}
#将zip文件E:\a.zip解压到e:\test,目录
Unzip-File -ZipFile E:\a.zip -TargetFolder e:\test

 
################################################

#PS3.0调用.Net4.5内置类(ZipFile)压缩/解压.zip:
#压缩
$sourcefile = "d:\test\backinfo"
$target = "d:\test\backinfo.zip"
[void][System.Reflection.Assembly]::LoadWithPartialName('System.IO.Compression.FileSystem')
[System.IO.Compression.ZipFile]::createfromdirectory($sourceFile, $target)

#解压
$sourcefile = "d:\test\backinfo.zip"
$target = "d:\test\backinfo"
[void][System.Reflection.Assembly]::LoadWithPartialName('System.IO.Compression.FileSystem')
[System.IO.Compression.ZipFile]::ExtractToDirectory($sourceFile, $target)

[System.IO.Compression.ZipFile]|gm -static

Zip压缩/解压缩(文件夹)的更多相关文章

  1. 使用VC++压缩解压缩文件夹

    前言   项目中要用到一个压缩解压缩的模块, 看了很多文章和源代码,  都不是很称心, 现在把我自己实现的代码和大家分享. 要求: 1.使用Unicode(支持中文). 2.使用源代码.(不使用静态或 ...

  2. Qt之QuaZIP(zip压缩/解压缩)

    简述 QuaZIP是使用Qt/C++对ZLIB进行简单封装的用于压缩及解压缩ZIP的开源库.适用于多种平台,利用它可以很方便的将单个或多个文件打包为zip文件,且打包后的zip文件可以通过其它工具打开 ...

  3. Qt之zip压缩/解压缩(QuaZIP)

    摘要: 简述 QuaZIP是使用Qt/C++对ZLIB进行简单封装的用于压缩及解压缩ZIP的开源库.适用于多种平台,利用它可以很方便的将单个或多个文件打包为zip文件,且打包后的zip文件可以通过其它 ...

  4. Linux的压缩/解压缩文件处理 zip & unzip

    Linux的压缩/解压缩命令详解及实例 压缩服务器上当前目录的内容为xxx.zip文件 zip -r xxx.zip ./* 解压zip文件到当前目录 unzip filename.zip 另:有些服 ...

  5. AntZipUtils【基于Ant的Zip压缩解压缩工具类】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 Android 压缩解压zip文件一般分为两种方式: 基于JDK的Zip压缩工具类 该版本存在问题:压缩时如果目录或文件名含有中文, ...

  6. linux 压缩当前文件夹下所有文件

    linux zip压缩.压缩当前文件夹下所有文件,压缩为a.zip.命令行的方法是怎样. zip  -r fileName.zip  文件夹名 tar tar命令可以用来压缩打包单文件.多个文件.单个 ...

  7. zip:命令行下zip压缩/解压缩

    在Ubuntu 18.04下验证,造冰箱的大熊猫@cnblogs 2019/6/6 序号 功能 命令行输入的命令 1 压缩单个文件 zip package.zip file 2 压缩多个文件 zip ...

  8. python实现压缩当前文件夹下的所有文件

    import os import zipfile def zipDir(dirpath, outFullName): ''' 压缩指定文件夹 :param dirpath: 目标文件夹路径 :para ...

  9. albert1017 Linux下压缩某个文件夹(文件夹打包)

    albert1017 Linux下压缩某个文件夹(文件夹打包) tar -zcvf /home/xahot.tar.gz /xahottar -zcvf 打包后生成的文件名全路径 要打包的目录例子:把 ...

  10. shell 批量压缩指定文件夹及子文件夹内图片

    shell 批量压缩指定文件夹及子文件夹内图片 用户上传的图片,一般都没有经过压缩,造成空间浪费.因此须要编写一个程序,查找文件夹及子文件夹的图片文件(jpg,gif,png),将大于某值的图片进行压 ...

随机推荐

  1. IDEA的学习总结

    IntelliJ IDEA是一款非常优秀的JAVA编辑器,初学都可会对其中的一些做法感到很别扭,刚开始用的时候我也感到很不习惯,在参考了网上一些文章后在这里把我的一些经验写出来,希望初学者能快速适应它 ...

  2. redis数据类型(六)Sorted set类型

    一.sorted set类型 sorted set是有序集合,它在set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,会自动重新按新的值调整顺序.可以理解了有两列的 m ...

  3. C# 通过反射获取方法/类上的自定义特性

    1.所有自定义属性都必须继承System.Attribute 2.自定义属性的类名称必须为 XXXXAttribute 即是已Attribute结尾 自定义属性QuickWebApi [Attribu ...

  4. [javaSE] 多线程(守护线程)

    我们一般使用多线程,都是while的死循环,想要结束线程,只需退出死循环即可 当线程中调用了sleep()方法或者wait()方法,当前的线程就会进入冻结状态,这个线程就结束不了 调用Thread对象 ...

  5. ssm集成redis

    身在一个传统的IT公司,接触的新技术比较少,打算年后跳槽,所以抽空学了一下redis. 简单的redis测试,咱们这边就不讲了,现在主要讲讲ssm集成redis的过程,因为现在项目用的就是ssm的框架 ...

  6. 一:Jquery-selector

    一:jQuery概述 1.基本功能 a.访问和操作DOM元素:获取元素,修改其样式和内容,删除元素,复制元素... b.对页面事件的处理:不需要指定事件中的函数名,直接在事件中绑定响应函数(匿名函数) ...

  7. H5演示文稿快速制作

    详见: http://www.geekfan.net/8107/ 或 http://www.jianshu.com/p/09a3bbb8b362

  8. poj 2002 Squares 几何二分 || 哈希

    Squares Time Limit: 3500MS   Memory Limit: 65536K Total Submissions: 15137   Accepted: 5749 Descript ...

  9. 内部类 ( Inner Class )

    内部类的作用: 1.隐藏内部实现,高内聚. 2.Java多继承的实现. 何为Java的多继承? Java只支持单一继承,所以如果需要多继承,那么可用内部类来实现. 如何实现? 1.父类A public ...

  10. python学习之老男孩python全栈第九期_day028知识点总结——面向对象进阶、hashlib

    一. 面向对象进阶与实例 dic = {'k': 'v' } 对象:存储 属性 和 调用方法 dic['k'] = 'v' class Foo: def __init__(self, name, ag ...