[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件管理] 用 WinRAR + Windows 右键发送到 (SendTo) 给文件或目录快速打包[带实时时间命名后缀]

此脚本无参数运行时, 将把自身复制到 SendTo 目录

在单一文件或者单一目录[无论文件或目录都只支持一个, 但目录内可含有任意层子目录及任意个文件]上点右键菜单发送到 ==> 此脚本文件名 时

将为该文件/目录创建一个带实时时间后缀的压缩包, 和源文件在同一目录下

例: 源文件名 file.txt, 压缩包名 file-20161003_025808.zip

ftype 是压缩格式 zip 或者 rar 可选

mmode 是压缩比, 范围 0--5  0 最低, 5 最高

pwd  是密码, 用你需要的密码替换即可, 此密码会被加入压缩包的明文中,
        因本人最初目的只为备份及简单防毒.
        
可以把本文件修改另存为几个副本, 比如我用了 6 种设置, 如下图
  1. @echo off & chcp 936
  2. ::                        +--------------------------------------------------+
  3. ::                        |#  _添加到加密同名压缩文件(.rar)_-m3.CMD          |
  4. ::                        |#  _添加到加密同名压缩文件(.rar)_存储-m0.CMD      |
  5. ::                        |#  _添加到加密同名压缩文件(.rar)_最好-m5.CMD      |
  6. ::   _____                |#  _添加到加密同名压缩文件(.zip)_-m3.CMD          |
  7. ::  | .. |\               |#  _添加到加密同名压缩文件(.zip)_存储-m0.CMD      |
  8. ::  | .. |_\              |#  _添加到加密同名压缩文件(.zip)_最好-m5.CMD      |
  9. ::  | ,,,, |              |B  Bluetooth设备                                  |
  10. ::  | ....+---------------|M  传真收件人                                     |
  11. ::  |_____|   打开(O)     |   文档                                           |
  12. ::  file.t|#  .....       |   压缩(zipped)文件夹                             |
  13. ::        |#              |   邮件接收人                                     |
  14. ::        |$  ...         |   桌面快捷方式                                   |
  15. ::        |               |   DVD RW 驱动器(F:)                              |
  16. ::        |   发送到(N) > +--------------------------------------------------+
  17. ::        |               |
  18. ::        |               |
  19. ::        |   属性(R)     |
  20. ::        +---------------+
  21. setlocal enableDelayedExpansion
  22. set "ftype=zip"             & REM 压缩格式 ftype: zip 或者 rar
  23. set "mmode=3"               & REM 压缩比 mmode: [0,5] 5 最高, 0 最低
  24. set "pwd=yourpassword"      & REM 为压缩包设定一个密码, 此密码将在压缩包注释中可见
  25. REM 如果空参数运行, 将本文件复制到 SendTo 目录中
  26. if "%~1"=="" (
  27.     for /f tokens^=2* %%a in ('reg query "HKCU\software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v SendTo ^| find /i "REG_SZ"') do (
  28.         echo;copy /y "%~0" "%%~b\"
  29.         copy /y "%~0" "%%~b\"
  30.     )
  31.     echo;任意键退出...
  32.     >nul pause
  33.     exit
  34. )
  35. REM 生成随机标记串
  36. set "neorand=neorand_"
  37. for /l %%a in (1 1 5) do (
  38.     set "neorand=!neorand!!random:~-1!"
  39. )
  40. echo;随机标记串
  41. set neorand
  42. REM 搜索出 winrar 的全路径
  43. set "filename=winrar.exe"
  44. call :searchFile winrarFullname
  45. echo;winrar 的全路径
  46. echo;winrarFullname={!winrarFullname!}
  47. set "r_param="
  48. if exist "%~1\" (
  49.     set "r_param=-r"
  50. )
  51. echo;"%winrarFullname%" a -ag-YYYYMMDD_HHMMSS -m%mmode% -af%ftype% "%~dp1!neorand!%~n1.%ftype%" -p%pwd% %r_param% -ep1 "%~1"
  52. "%winrarFullname%" a -ag-YYYYMMDD_HHMMSS -m%mmode% -af%ftype% "%~dp1!neorand!%~n1.%ftype%" -p%pwd% %r_param% -ep1 "%~1"
  53. REM 生成注释文件
  54. > "%~dp0rarcomment.txt" (
  55.     echo;"%~n1.%ftype%" 生成于 %date%_%time%
  56.     echo;pwd
  57.     echo;!pwd!
  58. )
  59. REM 找出含有 随机标记串 前缀 日期时间 后缀 的压缩文件名
  60. set "arcname="
  61. for /f "delims=" %%a in ('dir /s /b "%~dp1!neorand!%~n1*.%ftype%"') do (
  62.     if "!arcname!"=="" (
  63.         set "arcname=%%~a"
  64.     )
  65. )
  66. echo;含有 随机标记串 前缀 日期时间 后缀 的压缩文件名
  67. set arcname
  68. REM 添加注释
  69. "%winrarFullname%" c -z"%~dp0rarcomment.txt" "!arcname!"
  70. del "%~dp0rarcomment.txt"
  71. REM 去掉 随机标记串
  72. for %%a in ("!arcname!") do (
  73.     REM echo;%%~nxa
  74.     set "fn=%%~nxa"
  75.     set "fn=!fn:~13!"
  76. )
  77. ren "!arcname!" "!fn!"
  78. title 压缩包已经生成, 按任意键退出...
  79. <nul set /p "=压缩包已经生成, 按任意键退出..."
  80. >nul pause
  81. exit
  82. :searchFile winrarFullname
  83. setlocal enableDelayedExpansion
  84. set "rt="
  85. for %%d in (C D E) do (
  86.     if "!rt!"=="" (
  87.         for %%V in ("ProgramFiles" "ProgramFiles(x86)" "ProgramData" "ProgramW6432") do (
  88.             if "!rt!"=="" if "!%%~V!" neq "" (
  89.                 for /f "delims=" %%p in ('dir "%%d!%%~V:~1!\!filename!" /a /s /b') do (
  90.                     if "!rt!"=="" if /i "%%~nxp"=="!filename!" (
  91.                         set "rt=%%~p"
  92.                     )
  93.                 )
  94.             )
  95.         )
  96.     )
  97. )
  98. if "!rt!"=="" (
  99.     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 (
  100.         if "!rt!"=="" (
  101.             for /f "delims=" %%p in ('dir %%d:\"!filename!" /a /s /b') do (
  102.                 if "!rt!"=="" if /i "%%~nxp"=="!filename!" (
  103.                     set "rt=%%~p"
  104.                 )
  105.             )
  106.         )
  107.     )
  108. )
  109. ( endlocal & REM RETURN VALUES
  110.     if "%~1" NEQ "" (set %~1=%rt%) else (echo;%rt%)
  111.     exit /b
  112. )
  113. exit /b
  114. REM wmic 方式搜索文件, 慢
  115. :searchFile_wmic winrarFullname
  116. setlocal enableDelayedExpansion
  117. set "rt="
  118. for /f %%d in ('wmic logicaldisk get deviceid^|more +1') do (
  119.     if "!rt!"=="" (
  120.         for /f "delims=" %%p in ('dir %%d\"!filename!" /a /s /b') do (
  121.             if "!rt!"=="" if /i "%%~nxp"=="!filename!" (
  122.                 set "rt=%%~p"
  123.             )
  124.         )
  125.     )
  126. )
  127. ( endlocal & REM RETURN VALUES
  128.     if "%~1" NEQ "" (set %~1=%rt%) else (echo;%rt%)
  129.     exit /b
  130. )
  131. exit /b
复制代码

回复 2# 我来了

楼妹子, 请把你的注册表借我瞅瞅呗
  1.  ヘ^ヽ、  /⌒、  _,_
  2.   |   ̄7  (⌒r⌒7/
  3.   レ   \_/ ̄\_」
  4. _/         {
  5. _フ ●       ゝ
  6. _人   ο  ●  ナ
  7.   `ト、_     メ
  8.     /   ̄ ーィ゙
  9.    〈゚・。。。・゚  丶
复制代码

TOP

回复 4# 我来了

多谢啦
  1.                  _  _
  2.                 ( \/ )
  3.          .---.   \  /   .-"-.
  4.         /   6_6   \/   / 4 4 \
  5.         \_  (__\       \_ v _/
  6.         //   \\        //   \\
  7.        ((     ))      ((     ))
  8. =======""===""========""===""=======
  9.           |||   THANKS   |||
  10.            |              |
复制代码

TOP

回复 6# 我来了

馋我啊
  1.                               ==
  2.                              ==
  3.                             ==
  4.             ``````````      ==
  5.         ```==========```     ==
  6. /\```/\================`````==
  7. (  O O  )=====================
  8. === ^ === ================
  9.   \ O / ==================
  10.    ''' ======        =====
  11.         ====         ====
  12.         ===          ===
  13.          ==          ==
  14.          ==          ==
  15.          ==          ==
  16.          WW          WW
  17.         ''          ''  
复制代码

TOP

回复 8# 我来了

98年, 我没见过 Windows, 只见过 DOS , 更没有自己的电脑

TOP

回复 10# plp626

Thanks!

试了下, Win7 / XP  都有 ftype

TOP

返回列表