@echo off
title UPX
cd /d %~dp1
set filepath="%~1"
set filename=%~n1
set "ps_cmd=powershell -c "[Timespan]::FromMilliseconds([Environment]::TickCount).totalseconds""
rem 获取开始时间
for /f %%i in ('%ps_cmd%') do (set s=%%i)
rem 执行任务代码
upx --ultra-brute %filepath% -o %filename%_u.exe
rem 任务代码结束
rem 获取结束时间
for /f %%i in ('%ps_cmd%') do (set e=%%i)
rem 计算所用时间,调用VBS计算结果,因为BAT不支持浮点数运算
set r=%e%-%s%
echo Wscript.echo %r%>"%temp%\t.vbs"
for /f %%a in ('cscript /nologo "%temp%\t.vbs"') do (set r=%%a)
echo.&echo 任务完成,耗时: %r% 秒
pause >nul
:: Copyright (C) 1996 - 2020
:: Ultimate Packer for eXecutables
:: UPX 3.96w Markus Oberhumer, Laszlo Molnar & John Reiser Jan 23rd 2020
::
:: 用法:upx [-123456789dlthVL] [-qvfk] [-o 文件] 文件..
::
:: 命令:
:: -1 压缩更快 -9 压缩更好
:: --best compress best (对于大文件可能会很慢)
:: -d 解压缩 -l 列出压缩文件
:: -t 测试压缩文件 -V 显示版本号
:: -h 提供此帮助 -L 显示软件许可证
::
:: 选项:
:: -q 安静 -v 详细
:: -oFILE 将输出写入“文件”
:: -f 强制压缩可疑文件
:: --no-color, --mono, --color, --no-progress 改变外观
::
:: 压缩调整选项:
:: --brute 尝试所有可用的压缩方法和过滤器 [慢]
:: --ultra-brute 尝试更多的压缩变体 [非常慢]
::
:: 备份选项:
:: -k, --backup 保留备份文件
:: --no-backup 不备份文件 [默认]
::
:: 叠加选项:
:: --overlay=copy 复制附加到文件的任何额外数据[默认]
:: --overlay=strip 删除附加到文件的任何额外数据 [危险]
:: --overlay=skip 不压缩带有覆盖的文件
::
:: djgpp2/coff 的选项:
:: --coff 产生COFF输出[默认:EXE]
::
:: dos/com 的选项:
:: --8086 使压缩的 com 在任何 8086 上工作
::
:: dos/exe的选项:
:: --8086 使压缩的 exe 在任何 8086 上工作
:: --no-reloc 不将重定位放入 exe 标头
::
:: dos/sys 的选项:
:: --8086 使压缩系统在任何 8086 上工作
::
:: ps1/exe 的选项:
:: --8-bit 使用 8 位大小压缩 [默认:32 位]
:: --8mib-ram 8 MB 内存限制 [默认值:2 MiB]
:: --boot-only 禁用客户端/主机传输兼容性
:: --no-align 不对齐到 2048 字节 [启用:--console-run]
::
:: watcom/le 的选项:
:: --le 产生 LE 输出 [默认:EXE]
::
:: win32/pe、win64/pe、rtm32/pe & arm/pe 的选项:
:: --compress-exports=0 不压缩导出表
:: --compress-exports=1 压缩导出表 [默认]
:: --compress-icons=0 不压缩任何图标
:: --compress-icons=1 压缩除第一个图标以外的所有图标
:: --compress-icons=2 压缩除第一个图标目录以外的所有目录 [默认]
:: --compress-icons=3 压缩所有图标
:: --compress-resources=0 根本不压缩任何资源
:: --keep-resource=list 不压缩列表指定的资源
:: --strip-relocs=0 不剥离重定位
:: --strip-relocs=1 保留重定位 [默认]
::
:: linux/elf 的选项:
:: --preserve-build-id 复制 .??gnu.note.build-id 到压缩输出
::
:: 文件..可执行文件(解)压缩
::
:: 该版本支持:
:: amd64-darwin.dylib dylib/amd64
:: amd64-darwin.macho macho/amd64
:: amd64-linux.elf linux/amd64
:: amd64-linux.kernel.vmlinux vmlinux/amd64
:: amd64-win64.pe win64/pe
:: arm-darwin.macho macho/arm
:: arm-linux.elf linux/arm
:: arm-linux.kernel.vmlinux vmlinux/arm
:: arm-linux.kernel.vmlinuz vmlinuz/arm
:: arm-wince.pe arm/pe
:: arm64-darwin.macho macho/arm64
:: arm64-linux.elf linux/arm64
:: armeb-linux.elf linux/armeb
:: armeb-linux.kernel.vmlinux vmlinux/armeb
:: fat-darwin.macho macho/fat
:: i086-dos16.com dos/com
:: i086-dos16.exe dos/exe
:: i086-dos16.sys dos/sys
:: i386-bsd.elf.execve bsd.exec/i386
:: i386-darwin.macho macho/i386
:: i386-dos32.djgpp2.coff djgpp2/coff
:: i386-dos32.tmt.adam tmt/adam
:: i386-dos32.watcom.le watcom/le
:: i386-freebsd.elf freebsd/i386
:: i386-linux.elf linux/i386
:: i386-linux.elf.execve linux.exec/i386
:: i386-linux.elf.shell linux.sh/i386
:: i386-linux.kernel.bvmlinuz bvmlinuz/i386
:: i386-linux.kernel.vmlinux vmlinux/i386
:: i386-linux.kernel.vmlinuz vmlinuz/i386
:: i386-netbsd.elf netbsd/i386
:: i386-openbsd.elf openbsd/i386
:: i386-win32.pe win32/pe
:: m68k-atari.tos atari/tos
:: mips-linux.elf linux/mips
:: mipsel-linux.elf linux/mipsel
:: mipsel.r3000-ps1 ps1/exe
:: powerpc-darwin.macho macho/ppc32
:: powerpc-linux.elf linux/ppc32
:: powerpc-linux.kernel.vmlinux vmlinux/ppc32
:: powerpc64-linux.elf linux/ppc64
:: powerpc64le-darwin.macho macho/ppc64le
:: powerpc64le-linux.elf linux/ppc64le
:: powerpc64le-linux.kernel.vmlinux vmlinux/ppc64le
:: UPX comes with ABSOLUTELY NO WARRANTY; for details visit https://upx.github.io