Board logo

标题: [文件操作] [已解决]拖拽/拖放文件到bat上执行实现加解密压缩文件? [打印本页]

作者: iCorn    时间: 2011-7-12 09:20     标题: [已解决]拖拽/拖放文件到bat上执行实现加解密压缩文件?

本帖最后由 pcl_test 于 2018-4-20 17:06 编辑

因为公司发送文件,需要压缩加密。而且密码比较长,每次用winrar压缩,然后输入密码很麻烦。请教各位大牛,怎样编写这个批处理,才能实现如下的效果呢?

打开批处理,将需要压缩加密的文件拖拽进去,然后开始执行压缩。并将压缩后的文件输出到当前文件的目录。压缩包命名方式为【原文件名+当前日期】
比如,桌面上有个A.TXT,希望通过这个批处理将其压缩加密(密码为123),加密后,输出为A20110711.RAR,保存到桌面上。

同样,也请各位大牛指点下解密的过程。

先谢谢大家了。
作者: iCorn    时间: 2011-7-12 09:33

@echo off
color 0a
set /p str=请将文件拖放至此
rar a -HP123 "%ALLUSERSPROFILE%\桌面\test.rar" %str%
pause
---------------------------------------------------------------------------
这是我写的,可是,离目标还有一段距离,请大牛指教
作者: CrLf    时间: 2011-7-12 09:59

本帖最后由 zm900612 于 2011-7-12 10:02 编辑

一句话:
  1. for %%a in (%*) do rar a -inul -ep -as -agYYYYMMDD -hp123 "%%~dpna.rar" %%a
复制代码
花哨一点就:
  1. @echo off
  2. set pw=123
  3. for /f "tokens=1*delims==" %%a in ('ftype winrar 2^>nul') do (
  4. for %%c in (%%b) do (
  5. for %%d in (%*) do (
  6. %%c a -inul -ep -as -agYYYYMMDD -hp"%pw%" "%%~dpnd.rar" %%d
  7. )
  8. if "%~1"=="" echo 无文件
  9. pause&exit
  10. )
  11. )
  12. echo 未安装WinRar
  13. pause
复制代码
请不要在密码中使用双引号,否则易出错
作者: ArdentMan    时间: 2011-7-12 10:20

本帖最后由 ArdentMan 于 2011-7-12 10:22 编辑

要考虑下rar的路径问题啊,修改如下
  1. @Echo Off
  2. Set "Mpath=c:\progra~1\winrar\" Rem 这里改为实际的rar路径
  3. Set "Pssword=123" Rem 这里改为实际的密码
  4. for %%a in (%*) do %Mpath%rar a -inul -ep -as -agYYYYMMDD -hp%Pssword% "%%~dpna.rar" "%%a"
复制代码

作者: iCorn    时间: 2011-7-12 10:25

多谢楼上的几位大牛,我已经把winrar添加到环境变量里了。我这就试试,太感谢了。
作者: ArdentMan    时间: 2011-7-12 10:31

ftype用得好,学习了
作者: iCorn    时间: 2011-7-12 11:43

3# zm900612

小弟实在是惭愧,能请版主大哥帮忙再写个解压缩的么?
比如桌面上的A20110711.RAR ,密码是123 。那解压缩后在将文件放在桌面上。
先谢谢版主啦
作者: CrLf    时间: 2011-7-12 11:51

  1. rar x -hp123 A20110711.RAR
复制代码

作者: batman    时间: 2011-7-12 12:09

  1. @echo off
  2. if "%~1" equ "" exit
  3. set "password=123"
  4. for /f tokens^=2delims^=^" %%a in ('ftype winrar') do (
  5.   for %%b in (%*) do "%%a" x /y /hp%password% "%%~b" "%%~dpb\"
  6. )
复制代码

作者: iCorn    时间: 2011-7-12 12:12

感动的泪流满面啊。大侠这么多,这么热心,太感谢了。
作者: batman    时间: 2011-7-12 12:15

本帖最后由 batman 于 2011-7-12 12:17 编辑

10# iCorn

感动之余记得结帖。。。
此外去这里投上一票:
http://www.bathome.net/thread-13197-1-1.html
作者: iCorn    时间: 2011-7-12 12:23

9# batman


好的,另外。如果压缩文件里面是个文件夹,那么解压后,所有文件就都在桌面上了,能不能解压后还能保持原来的目录结构呢?
作者: batman    时间: 2011-7-12 12:42

  1. @echo off
  2. if "%~1" equ "" exit
  3. set "password=123"
  4. for /f tokens^=2delims^=^" %%a in ('ftype winrar') do (
  5.   for %%b in (%*) do "%%a" x /y /eq2 /hp%password% "%%~b" "%%~dpb\"
  6. )
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2