Last active
March 10, 2019 21:29
-
-
Save libraplanet/50c987d672effb12481e68fc2ba1ea26 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--------------------------------------------------------------------------------------------------- | |
-- Zip Combine and Repacker Doroplet | |
-- 2018/08/09 takumi | |
--------------------------------------------------------------------------------------------------- | |
■ 概要 | |
複数のZIPファイルをフォルダ階層なしで | |
展開・結合し、ファイルのみをZIPに再圧縮します。 | |
■ 環境 | |
・ 7za.exe (7zipのCUI版) ※CPUに合わせて自分で調達してください | |
■ 構成 | |
[./] | |
├ [bin] 追加でパスを通るフォルダ | |
│ ├ 7za.dll system32などを汚したくない場合はbinの中に入れる。 | |
│ ├ 7za.exe | |
│ ├ 7zxa.dll | |
│ ・ | |
├ [temp] 実行時の作業用フォルダ。実行するたびにゴミがたまっていきます、 | |
├ zicore_droplet.bat ドロップレット本体 | |
├ zicore_c.bat テスト用のCMD起動バッチ(基本使いません) | |
└ readme.txt このファイル | |
■ インストール | |
任意のフォルダに展開してください。 | |
7zaをパスの通ったフォルダにインストールしてください。 | |
(./bin でも可) | |
■ 使い方 | |
ZIPをまとめたフォルダを、 | |
zicore_droplet.batにドラッグ & ドロップしてください。 | |
そのフォルダのある階層に、結合して再圧縮されたZIPファイルが生成されます。 | |
■ 注意事項 | |
テスト不十分です。 | |
フォルダ構成がなくなります。 | |
実行するたびにゴミがたまっていきますので | |
./temp フォルダの定期的な掃除をお願いします。 | |
■ 参考 | |
・-m (Set compression Method) switch | |
https://sevenzip.osdn.jp/chm/cmdline/switches/method.htm#Zip |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@SETLOCAL | |
@SET PARAM_COMP_LV=5 | |
@SET TOOLS_DIR=%~dp0 | |
@SET BIN_DIR=%TOOLS_DIR%bin | |
@SET PATH=%BIN_DIR%;%PATH% | |
@SET DATE_TIME_STR=%DATE%_%TIME:~0,8% | |
@SET DATE_TIME_STR=%DATE_TIME_STR:/=% | |
@SET DATE_TIME_STR=%DATE_TIME_STR::=% | |
@SET DATE_TIME_STR=%DATE_TIME_STR: =0% | |
@REM @SET WORK_DIR=%~nx0 | |
@SET WORK_DIR=%~nx0_%RANDOM% | |
@SET WORK_DIR=%~nx0_%DATE_TIME_STR% | |
@SET WORK_PATH=%TOOLS_DIR%temp\%WORK_DIR% | |
@SET SRC_DIR=%~dpn1% | |
@SET OUT_PUTFILE=%SRC_DIR%_%DATE_TIME_STR%.zip | |
@GOTO :sub_main | |
@REM ---------------------------------------------------------------------------------------------- | |
@REM sub_extract | |
@REM ---------------------------------------------------------------------------------------------- | |
:sub_extract | |
@ECHO dir =%CD% | |
@ECHO in file =%~1 | |
@ECHO (path) =%~pdnx1 | |
@SET ZIP_FILE=%~pdnx1 | |
@CALL CMD /C ( | |
@SETLOCAL | |
cd /d "%WORK_PATH%" | |
7za e -y "%ZIP_FILE%" | |
@ENDLOCAL | |
) | |
@GOTO :EOF | |
@REM ---------------------------------------------------------------------------------------------- | |
@REM sub_deldir | |
@REM ---------------------------------------------------------------------------------------------- | |
:sub_deldir | |
@CALL CMD /C ( | |
@SETLOCAL | |
cd /d "%WORK_PATH%" | |
rd /S /Q * | |
@ENDLOCAL | |
) | |
@GOTO :EOF | |
@REM ---------------------------------------------------------------------------------------------- | |
@REM sub_compress | |
@REM ---------------------------------------------------------------------------------------------- | |
:sub_compress | |
@ECHO dir =%CD% | |
@ECHO out file =%~1 | |
@ECHO (path) =%~pdnx1 | |
@SET OUT_FILE=%~pdnx1 | |
@CALL CMD /C ( | |
@SETLOCAL | |
cd /d "%WORK_PATH%" | |
7za a -tzip -mx=%PARAM_COMP_LV% -mcu=on "%OUT_FILE%" *.* | |
@ENDLOCAL | |
) | |
@GOTO :EOF | |
@REM ---------------------------------------------------------------------------------------------- | |
@REM sub_proc | |
@REM ---------------------------------------------------------------------------------------------- | |
:sub_proc | |
@ECHO [src] | |
@cd /d "%~dpn1%" | |
@ECHO CurrentDIR=%CD% | |
@ECHO. | |
@ECHO [init] | |
@mkdir "%WORK_PATH%" | |
@ECHO WORK DIR=%WORK_PATH% | |
@ECHO. | |
@ECHO [extract] | |
@FOR /r %%A IN (*.zip) DO @( | |
@CALL :sub_extract "%%A" | |
) | |
@ECHO. | |
@REM @ECHO [deldir] | |
@REM @CALL :sub_deldir | |
@REM @ECHO. | |
@ECHO [compress] | |
@CALL :sub_compress "%OUT_PUTFILE%" | |
@ECHO. | |
@ECHO [compress] | |
@ECHO ^ =^> %OUT_PUTFILE% | |
@ECHO. | |
@GOTO :EOF | |
@REM ---------------------------------------------------------------------------------------------- | |
@REM sub_usage | |
@REM ---------------------------------------------------------------------------------------------- | |
:sub_usage | |
@ECHO usage: | |
@ECHO ^ zicore_droplet.bat [DIR_PATH] | |
@ECHO. | |
@GOTO :EOF | |
@REM ---------------------------------------------------------------------------------------------- | |
@REM sub_main | |
@REM ---------------------------------------------------------------------------------------------- | |
:sub_main | |
@SET _ERROR=0 | |
@IF "" == "%~1" @( | |
ECHO no arg | |
SET _ERROR=%_ERROR%1 | |
) | |
@IF NOT EXIST "%1.\" @( | |
ECHO no dir | |
SET _ERROR=%_ERROR%1 | |
) | |
@ECHO. | |
@IF "%_ERROR%" == "0" @( | |
@REM @ECHO main | |
@CALL :sub_proc "%~1" | |
) ELSE @( | |
@CALL :sub_usage | |
) | |
@ENDLOCAL | |
@PAUSE |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment