同じコードを数年前にExcelVBAでしこしこ作ってたのがなつかしい
functionZip-Subfolders { param( [string]$directory ) #指定されたディレクトリ内のサブフォルダを取得 $subfolders = [System.IO.Directory]::GetDirectories($directory) | % { [System.IO.DirectoryInfo]::new($_) } foreach ($folder in $subfolders) { #圧縮ファイルの保存先パス $zipFilename = "$($folder.Name).zip" $zipFilepath =Join-Path -Path $directory -ChildPath $zipFilename # サブフォルダをZIP圧縮Write-Host "圧縮中..." [System.IO.Compression.ZipFile]::CreateFromDirectory($folder.FullName, $zipFilepath)Write-Host "$zipFilepath に圧縮しました。" }}#ユーザーにフォルダパスを入力させる$folderPath = Read-Host "圧縮する親フォルダのパスを入力してください"#パスが存在するか確認if ([System.IO.Directory]::Exists($folderPath)) {Zip-Subfolders -directory $folderPath}