今回は ZIP 圧縮されたファイルを LotusScript で解凍する方法を紹介します。
ZIP ファイルの解凍
利用するのは PowerShell の Expand-Archive コマンドです。構文やパラメータの詳細は Microsoft Learn の Expand-Archive をご確認ください。
|
Expand-Archive [[-DestinationPath] <String>] -LiteralPath <String> [-Force] [-PassThru] [-WhatIf] [-Confirm] [<CommonParameters>] |
利用するパラメータは次の3つです。
| -DestinationPath | 解凍先のフォルダ |
| -LiteralPath | 解凍する ZIP ファイルのパスとファイル名 |
| -Force | 上書き保存する場合に指定 |
ちなみに PowerShell は Windows で利用できるスクリプトやコマンドの実行環境で、Windows 7 以降で利用できます。Windows 登場以前のコマンドプロンプト(cmd.exe)、Windows 98 以降で利用可能のとなった WSH(Windows Script Host)を統合して進化させたような存在といえます。
サンプルプログラム
C ドライブの Tmp フォルダにある ZIP ファイルを解凍するサンプルは次の通りです。
sCMD には PowerShell で実行する解凍コマンド、sPS には WSH で PowerShell を実行させるコマンド文字列をセットしています。PowerShell を実行するのに 前回 紹介した WSH を利用している点がポイントですね。
|
Dim oWSH As Variant Dim sZIP As String ' ZIP ファイルのパスとファイル名 Dim sFol As String ' 解凍先のフォルダ Dim sCmd As String Dim sPS As String ' 初期化 sZIP = "C:\Tmp\ken_all.zip" sFol = "C:\Tmp\" ' PowerShell コマンドを作成 sCmd = |Expand-Archive| sCmd = sCmd & | -LiteralPath '| & sZIP & |'| ' ZIP ファイル sCmd = sCmd & | -DestinationPath '| & sFol & |'| ' 解凍先 sCmd = sCmd & | -Force| ' 上書き ' PowerShell の -Command で ZIP 解凍を実行するコマンド文字列を作成 sPS = |powershell -Command "| & sCmd & |"| ' PowerShell を実行(ウィンドウ非表示、実行終了を待つ) Set oWSH = CreateObject("WScript.Shell") oWSH.Run sPS, 0, True ' 解凍先フォルダをエクスプローラで開く oWSH.Run |explorer.exe "| & sFol & |"| |

0 件のコメント:
コメントを投稿