此脚本无参数运行时, 将把自身复制到 SendTo 目录
在单一文件或者单一目录[无论文件或目录都只支持一个, 但目录内可含有任意层子目录及任意个文件]上点右键菜单发送到 ==> 此脚本文件名 时
将为该文件/目录创建一个带实时时间后缀的压缩包, 和源文件在同一目录下
例: 源文件名 file.txt, 压缩包名 file-20161003_025808.zip
ftype 是压缩格式 zip 或者 rar 可选
mmode 是压缩比, 范围 0--5 0 最低, 5 最高
pwd 是密码, 用你需要的密码替换即可, 此密码会被加入压缩包的明文中,
因本人最初目的只为备份及简单防毒.
可以把本文件修改另存为几个副本, 比如我用了 6 种设置, 如下图- @echo off & chcp 936
-
- :: +--------------------------------------------------+
- :: |# _添加到加密同名压缩文件(.rar)_-m3.CMD |
- :: |# _添加到加密同名压缩文件(.rar)_存储-m0.CMD |
- :: |# _添加到加密同名压缩文件(.rar)_最好-m5.CMD |
- :: _____ |# _添加到加密同名压缩文件(.zip)_-m3.CMD |
- :: | .. |\ |# _添加到加密同名压缩文件(.zip)_存储-m0.CMD |
- :: | .. |_\ |# _添加到加密同名压缩文件(.zip)_最好-m5.CMD |
- :: | ,,,, | |B Bluetooth设备 |
- :: | ....+---------------|M 传真收件人 |
- :: |_____| 打开(O) | 文档 |
- :: file.t|# ..... | 压缩(zipped)文件夹 |
- :: |# | 邮件接收人 |
- :: |$ ... | 桌面快捷方式 |
- :: | | DVD RW 驱动器(F:) |
- :: | 发送到(N) > +--------------------------------------------------+
- :: | |
- :: | |
- :: | 属性(R) |
- :: +---------------+
-
-
- setlocal enableDelayedExpansion
-
- set "ftype=zip" & REM 压缩格式 ftype: zip 或者 rar
-
- set "mmode=3" & REM 压缩比 mmode: [0,5] 5 最高, 0 最低
-
- set "pwd=yourpassword" & REM 为压缩包设定一个密码, 此密码将在压缩包注释中可见
-
- REM 如果空参数运行, 将本文件复制到 SendTo 目录中
- if "%~1"=="" (
-
- for /f tokens^=2* %%a in ('reg query "HKCU\software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v SendTo ^| find /i "REG_SZ"') do (
- echo;copy /y "%~0" "%%~b\"
- copy /y "%~0" "%%~b\"
- )
- echo;任意键退出...
- >nul pause
- exit
- )
-
-
- REM 生成随机标记串
- set "neorand=neorand_"
- for /l %%a in (1 1 5) do (
- set "neorand=!neorand!!random:~-1!"
- )
- echo;随机标记串
- set neorand
-
-
- REM 搜索出 winrar 的全路径
- set "filename=winrar.exe"
- call :searchFile winrarFullname
- echo;winrar 的全路径
- echo;winrarFullname={!winrarFullname!}
-
- set "r_param="
- if exist "%~1\" (
- set "r_param=-r"
- )
-
- echo;"%winrarFullname%" a -ag-YYYYMMDD_HHMMSS -m%mmode% -af%ftype% "%~dp1!neorand!%~n1.%ftype%" -p%pwd% %r_param% -ep1 "%~1"
- "%winrarFullname%" a -ag-YYYYMMDD_HHMMSS -m%mmode% -af%ftype% "%~dp1!neorand!%~n1.%ftype%" -p%pwd% %r_param% -ep1 "%~1"
-
- REM 生成注释文件
- > "%~dp0rarcomment.txt" (
- echo;"%~n1.%ftype%" 生成于 %date%_%time%
- echo;pwd
- echo;!pwd!
- )
-
- REM 找出含有 随机标记串 前缀 日期时间 后缀 的压缩文件名
- set "arcname="
- for /f "delims=" %%a in ('dir /s /b "%~dp1!neorand!%~n1*.%ftype%"') do (
- if "!arcname!"=="" (
- set "arcname=%%~a"
- )
- )
- echo;含有 随机标记串 前缀 日期时间 后缀 的压缩文件名
- set arcname
-
- REM 添加注释
- "%winrarFullname%" c -z"%~dp0rarcomment.txt" "!arcname!"
- del "%~dp0rarcomment.txt"
-
- REM 去掉 随机标记串
- for %%a in ("!arcname!") do (
- REM echo;%%~nxa
- set "fn=%%~nxa"
- set "fn=!fn:~13!"
- )
-
- ren "!arcname!" "!fn!"
-
- title 压缩包已经生成, 按任意键退出...
- <nul set /p "=压缩包已经生成, 按任意键退出..."
- >nul pause
-
- exit
-
-
- :searchFile winrarFullname
-
- setlocal enableDelayedExpansion
- set "rt="
-
- for %%d in (C D E) do (
- if "!rt!"=="" (
- for %%V in ("ProgramFiles" "ProgramFiles(x86)" "ProgramData" "ProgramW6432") do (
- if "!rt!"=="" if "!%%~V!" neq "" (
-
- for /f "delims=" %%p in ('dir "%%d!%%~V:~1!\!filename!" /a /s /b') do (
- if "!rt!"=="" if /i "%%~nxp"=="!filename!" (
- set "rt=%%~p"
- )
- )
- )
- )
- )
- )
-
- if "!rt!"=="" (
- for %%d in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
- if "!rt!"=="" (
- for /f "delims=" %%p in ('dir %%d:\"!filename!" /a /s /b') do (
- if "!rt!"=="" if /i "%%~nxp"=="!filename!" (
- set "rt=%%~p"
- )
- )
- )
- )
- )
-
- ( endlocal & REM RETURN VALUES
- if "%~1" NEQ "" (set %~1=%rt%) else (echo;%rt%)
- exit /b
- )
-
- exit /b
-
- REM wmic 方式搜索文件, 慢
- :searchFile_wmic winrarFullname
- setlocal enableDelayedExpansion
- set "rt="
- for /f %%d in ('wmic logicaldisk get deviceid^|more +1') do (
- if "!rt!"=="" (
- for /f "delims=" %%p in ('dir %%d\"!filename!" /a /s /b') do (
- if "!rt!"=="" if /i "%%~nxp"=="!filename!" (
- set "rt=%%~p"
- )
- )
- )
- )
-
- ( endlocal & REM RETURN VALUES
- if "%~1" NEQ "" (set %~1=%rt%) else (echo;%rt%)
- exit /b
- )
- exit /b
复制代码
|