【转载】国外VBA 调用PowerShell压缩和解压缩文件代码
时 间:2021-11-02 10:38:08
作 者:金宇 ID:43 城市:江阴
摘 要:VBA 调用PowerShell压缩和解压缩文件代码
正 文:
可以将下面的代码放在模块中,然后自己尝试压缩和解压缩文件。
'--------------------------------------------------------------------------------------- ' Procedure : PS_Zip ' Author : Daniel Pineault, CARDA Consultants Inc. ' Website : http://www.cardaconsultants.com ' Purpose : Zip up a file or folder ' Copyright : The following is release as Attribution-ShareAlike 4.0 International ' (CC BY-SA 4.0) - https://creativecommons.org/licenses/by-sa/4.0/ ' Req'd Refs: Requires a copy of the PS_Execute() sub ' References: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.archive/compress-archive?view=powershell-7.1 ' ' Input Variables: ' ~~~~~~~~~~~~~~~~ ' sSrc : The source file or folder to compress/zip ' sDest : The output zip file (fully qualified path and filename) ' sCompressionLvl : Compression level to be used ' NoCompression, Fastest or Optimal ' ' Usage: ' ~~~~~~ ' Compress a single file ' PS_Zip("C:\Temp\MonthlyStats.xlsx", "C:\Users\Dev\Desktop\MyZipFile.zip") ' Compress a whole folder ' PS_Zip("C:\Temp\", "C:\Users\Dev\Desktop\MyFolder.zip") ' ' Revision History: ' Rev Date(yyyy-mm-dd) Description ' ************************************************************************************** ' 1 2021-10-12 Initial Release '--------------------------------------------------------------------------------------- Public Sub PS_Zip(sSrc As String, _ sDest As String, _ Optional sCompressionLvl As String = "Optimal") On Error GoTo Error_Handler Dim sCmd As String sCmd = "Compress-Archive -LiteralPath '" & sSrc & "' -DestinationPath '" & sDest & _ "' -CompressionLevel " & sCompressionLvl Call PS_Execute(sCmd) Error_Handler_Exit: On Error Resume Next Exit Sub Error_Handler: MsgBox "The following error has occured" & vbCrLf & vbCrLf & _ "Error Number: " & Err.Number & vbCrLf & _ "Error Source: PS_Zip" & vbCrLf & _ "Error Description: " & Err.Description & _ Switch(Erl = 0, "", Erl <> 0, vbCrLf & "Line No: " & Erl) _ , vbOKOnly + vbCritical, "An Error has Occured!" Resume Error_Handler_Exit End Sub '--------------------------------------------------------------------------------------- ' Procedure : PS_UnZip ' Author : Daniel Pineault, CARDA Consultants Inc. ' Website : http://www.cardaconsultants.com ' Purpose : Unzip a file ' Copyright : The following is release as Attribution-ShareAlike 4.0 International ' (CC BY-SA 4.0) - https://creativecommons.org/licenses/by-sa/4.0/ ' Req'd Refs: Requires a copy of the PS_Execute() function ' References: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.archive/expand-archive?view=powershell-7.1 ' ' Input Variables: ' ~~~~~~~~~~~~~~~~ ' sSrc : Zip file to unzip/expand ' sDest : Folder where it should be to extracted to ' ' Usage: ' ~~~~~~ ' Call PS_UnZip("c:\temp\testing.zip", "c:\temp\exports") ' ' Revision History: ' Rev Date(yyyy-mm-dd) Description ' ************************************************************************************** ' 1 2021-10-12 Initial Release '--------------------------------------------------------------------------------------- Public Sub PS_UnZip(sSrc As String, sDest As String) On Error GoTo Error_Handler Dim sCmd As String sCmd = "Expand-Archive -LiteralPath '" & sSrc & "' -DestinationPath '" & sDest & "'" Call PS_Execute(sCmd) Error_Handler_Exit: On Error Resume Next Exit Sub Error_Handler: MsgBox "The following error has occured" & vbCrLf & vbCrLf & _ "Error Number: " & Err.Number & vbCrLf & _ "Error Source: PS_UnZip" & vbCrLf & _ "Error Description: " & Err.Description & _ Switch(Erl = 0, "", Erl <> 0, vbCrLf & "Line No: " & Erl) _ , vbOKOnly + vbCritical, "An Error has Occured!" Resume Error_Handler_Exit End Sub '--------------------------------------------------------------------------------------- ' Procedure : PS_Execute Public Sub PS_Execute(ByVal sPSCmd As String) 'Setup the powershell command properly sPSCmd = "powershell -command " & sPSCmd 'Execute and capture the returned value CreateObject("WScript.Shell").Exec (sPSCmd) End Sub
Access软件网官方交流QQ群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- 统计当月之前(不含当月)的记录...(03.11)
- 【Access Inputbo...(03.03)
- 按回车键后光标移动到下一条记录...(02.12)
- 【Access Dsum示例】...(02.07)
- Access对子窗体的数据进行...(02.05)
- 【Access高效办公】上月累...(01.09)
- 【Access高效办公】上月累...(01.06)
- 【Access Inputbo...(12.23)
- 【Access Dsum示例】...(12.16)

学习心得
最新文章
- 仓库管理实战课程(10)-入库功能...(04.08)
- Access快速开发平台--Fun...(04.07)
- 仓库管理实战课程(9)-开发往来单...(04.02)
- 仓库管理实战课程(8)-商品信息功...(04.01)
- 仓库管理实战课程(7)-链接表(03.31)
- 仓库管理实战课程(6)-创建查询(03.29)
- 仓库管理实战课程(5)-字段属性(03.27)
- 设备装配出入库管理系统;基于Acc...(03.24)
- 仓库管理实战课程(4)-建表操作(03.22)
- 仓库管理实战课程(3)-需求设计说...(03.19)