質問: ### 前提・実現したいこと Zipファイル名と解凍後のフォルダ名の不一致を解消するべく Zipのファイル名を解凍後のフォルダ名に変更したいと考えています。 現在はPowerShellで一度解凍後、出力されたフォルダ名を取得し 再度Zipに圧縮したのちリネームという方法を取っていますが、 正直効率的とも言えず処理時間の問題からも改善したいと考えています。 サーバー側での自動実行を想定していますので、 コマンドラインから実行できない方法は利用できません。 個人的にはPowerShell等で対象のZipファイルの解凍後フォルダ名を 取得しリネームの処理だけで完結させたいのですが、 方法がわからず苦戦している状態です。 なにかアイディア等があれば教えて頂きたいと思います。 例) 実行前 Zipファイル名:[20160101.zip] 解凍後フォルダ名:[会議内容] 実行後 Zipファイル名:[会議内容.zip] 解凍後フォルダ名:[会議内容] ※解凍後フォルダ内のファイル、フォルダ等に関しては変更を行いません。 ### 補足情報(言語/FW/ツール等のバージョンなど) 端末:Windows 利用可能:PowerShell,bat,Vbscript等
回答: 走り書きで重複チェックもクソも無いですが、 目的の動作はVBscriptで再現ができました。 ドラッグアンドドロップで対象のZipファイルをリネームします。 ``` Dim ZIPfile For Each ZIPfile In WScript.Arguments RenameZIP ZIPfile Next WScript.Quit Sub RenameZIP(ZIPfile) Dim fso Dim Shell Dim Folder Dim RenameFile Set fso=CreateObject("Scripting.FileSystemObject") Set Shell=CreateObject("Shell.Application") Set Folder=Shell.NameSpace(fso.GetAbsolutePathName(ZIPfile)) For Each FolderItem In Folder.Items() set RenameFile=fso.getfile(ZIPfile) If FolderItem.Name&"."&fso.GetExtensionName(ZIPfile) <> RenameFile.Name Then RenameFile.Name=FolderItem.Name&"."&fso.GetExtensionName(ZIPfile) End If Next End Sub ```