无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: 老毛桃
打印 上一主题 下一主题

闲着没事,写个批处理分享一下

[复制链接]
31#
 楼主| 发表于 2006-6-5 10:47:56 | 只看该作者
原帖由 TCLSHX 于 2006-6-4 08:07 发表
QBFC做的,瑞星总是把它当成病毒,这瑞星真烦.

毛兄可否把你的这个QBFC做的反编译密码说一下.

哈哈,其实不需要什么反编译密码的了,你运行这个程序的时候,会在你的 %temp% 文件夹下生成一个 34616174.BAT 这样形式的批处理文件(文件名不定),打开看看就知道了。

反编译密码?是 iamlmt 哈哈。

这样吧,干脆我把批处理的内容贴出来好了,还请各位大侠帮我指点指点
  1. @ECHO OFF
  2. SET TT=老毛桃制作的批量文件 CAB 打包工具
  3. COLOR 1F
  4. TITLE %TT%
  5. SET ERR=
  6. SET C0=MAKECAB /D CompressionType=LZX /D CompressionMemory=21 /D MaxDiskSize=CDROM /D Cabinet=ON /D Compress=ON /D FolderSizeThreshold=5000000

  7. :BEGIN
  8. CLS
  9. ECHO.
  10. ECHO        ╭══════════════════╮
  11. ECHO        ║                  ║
  12. ECHO    ╭═══┤ 老毛桃制作的批量文件 CAB 打包工具! ├═══╮
  13. ECHO    ║   ║                  ║   ║
  14. ECHO    ║   ╰══════════════════╯   ║
  15. ECHO    ║                          ║
  16. ECHO    ║   您是需要将批量文件制作成一个压缩包呢?     ║
  17. ECHO    ║   还是想生成 N 个 CAB 格式的单独压缩文件?    ║
  18. ECHO    ║                          ║
  19. ECHO    ║    [1] 将批量文件制作成一个压缩包        ║
  20. ECHO    ║    [2] 将每个文件制作成单独压缩文件       ║
  21. ECHO    ║    [3] 将单个文件制作成单独压缩文件       ║
  22. ECHO    ║    [Q] 退出                   ║
  23. ECHO    ║                          ║
  24. ECHO    ╟──────────────────────────╢
  25. ECHO    ║ 注:1. 待压缩文件的父目录需与本程序在同一路径下; ║
  26. ECHO    ║   2. 待压缩文件所在路径(包括父路径)不许有空格。 ║
  27. ECHO    ╟══════════════════════════╢
  28. ECHO    ║ 版权所有:老毛桃   供无忧朋友们交流,翻版不究 ║
  29. ECHO    ╰──────────────────────────╯
  30. ECHO.
  31. SET Choice=
  32. SET /P Choice=    请选择要进行的操作(1/2/3/Q),然后按回车:

  33. IF NOT '%Choice%'=='' SET Choice=%Choice:~0,1%
  34. IF /I '%Choice%'=='1' GOTO LOOPA
  35. IF /I '%Choice%'=='2' GOTO LOOPA
  36. IF /I '%Choice%'=='3' GOTO LOOPD
  37. IF /I '%Choice%'=='Q' EXIT
  38. GOTO BEGIN

  39. :LOOPA
  40. IF /I '%Choice%'=='1' (
  41. TITLE %TT% - 制作成一个压缩包
  42. )
  43. IF /I '%Choice%'=='2' (
  44. TITLE %TT% - 制作成多个单独压缩文件
  45. )
  46. IF "%Err%"=="" (
  47. CLS
  48. )
  49. ECHO 请输入需压缩的文件所在的目录名,如 Files
  50. SET Ds=
  51. SET /P Ds=
  52. IF "%Ds%"=="" goto LOOPA
  53. IF NOT EXIST %Ds% (
  54. SET Err=1
  55. ECHO.
  56. CLS
  57. ECHO 您所输入的路径不存在,请重新输入
  58. ECHO.
  59. GOTO LOOPA
  60. )

  61. IF /I '%Choice%'=='1' GOTO LOOPB
  62. GOTO LOOPC

  63. :LOOPB
  64. CLS
  65. ECHO 请输入需要保存的压缩包文件名,如 Drive.CAB
  66. SET FCab=
  67. SET /P FCab=
  68. IF "%FCab%"=="" goto LOOPB
  69. SET C=%C0% /D DiskDirectoryTemplate=.\ /D CabinetNameTemplate=%FCab%
  70. SET TF=%TEMP%\Files.tmp
  71. IF EXIST %TF% DEL %TF% >NUL
  72. FOR /F %%i in ('dir /b %Ds%') do ECHO %Ds%\%%i >>%TF%
  73. ECHO.
  74. %C% /F %TF%
  75. DEL /F /S /Q %TF% SETUP.INF SETUP.RPT >NUL
  76. GOTO EXIT

  77. :LOOPC
  78. CLS
  79. ECHO 请输入需要保存的 CAB 格式文件所在路径,比如 OutFile
  80. ECHO 如果此路径不存在,将在当前目录下自动创建。
  81. SET OUT=
  82. SET /P OUT=
  83. IF "%OUT%"=="" GOTO LOOPC
  84. FOR /F %%I IN ('CD') DO SET P=%%I\%Ds%
  85. SET C=%C0% /L %OUT% %P%\
  86. ECHO.
  87. FOR /F %%I IN ('dir /B %Ds%') do %C%%%I
  88. GOTO EXIT

  89. :LOOPD
  90. TITLE %TT% - 只压缩一个文件
  91. IF "%Err%"=="" (
  92. CLS
  93. )
  94. ECHO 请输入需要需要压缩的文件所在路径,比如 Driver\NV4_Disp.SYS
  95. ECHO 其中 Driver 与本程序在同一文件夹中
  96. ECHO 您也可以选择按 TAB 键快速输入路径和文件名称,完成后按回车确认
  97. SET FileR=
  98. SET /P FileR=
  99. IF "%FileR%"=="" (
  100. CLS
  101. GOTO LOOPD
  102. )
  103. IF NOT EXIST "%FileR%" (
  104. SET Err=1
  105. ECHO.
  106. CLS
  107. ECHO 您所输入的文件路径不存在,请重新输入
  108. ECHO.
  109. GOTO LOOPD
  110. )
  111. GOTO LOOPE

  112. :LOOPE
  113. CLS
  114. ECHO 请输入需要需要保存的压缩文件路径,比如 Driver\NV4_Disp.CAB
  115. ECHO 如果不输入文件路径,则以 NV4_Disp.SY_ 的形式保存在本程序所在路径
  116. ECHO.
  117. ECHO 注意:如果尝试输入一个不存在的路径信息,压缩程序会出错!
  118. SET FileT=
  119. SET /P FileT=
  120. %C0% %FileR% %FileT%
  121. GOTO EXIT

  122. :EXIT
  123. ECHO.
  124. ECHO.
  125. ECHO.
  126. ECHO 您需要的操作已经全部完成,请核查. . .
  127. ECHO.
  128. ECHO 老毛桃感谢您的使用,如果您有什么好的建议,请 QQ 我!
  129. ECHO.
  130. ECHO.
  131. ECHO 请按任意键退出程序. . .
  132. PAUSE >NUL
复制代码

[ 本帖最后由 老毛桃 于 2006-6-28 01:58 PM 编辑 ]
回复

使用道具 举报

32#
 楼主| 发表于 2006-6-5 10:50:25 | 只看该作者
原帖由 雨哭了 于 2006-6-4 17:36 发表
毛桃大哥,能不能帖一下你的这个批处理让我们看一下.

呵呵,见楼上。

原帖由 zgzxp 于 2006-6-4 08:18 发表
ECHO.
ECHO 老毛桃感谢您的使用,如果您有什么好的建议,请 QQ 我!


QQ都不写

怎么QQ你哦

6158588

呵呵,你知道的了,不想公开的,每天上 QQ 第一件事就是处理一大堆的添加消息,呵呵
回复

使用道具 举报

33#
发表于 2006-6-5 11:12:42 | 只看该作者
毛桃老大写的批处理之好,我辈恐怕是学不会了,网上的批处理教材都差不多,几乎出于同一人之手,而且都没有作过多的解释,学起来难啊,要是毛老大能出一部批处理教材就好了,最好能配上例子,每句都有注释就好了.有例子的容易看得出每句的功能.
回复

使用道具 举报

34#
 楼主| 发表于 2006-6-5 11:18:53 | 只看该作者
原帖由 雨哭了 于 2006-6-5 11:12 发表
毛桃老大写的批处理之好,我辈恐怕是学不会了,网上的批处理教材都差不多,几乎出于同一人之手,而且都没有作过多的解释,学起来难啊,要是毛老大能出一部批处理教材就好了,最好能配上例子,每句都有注释就好了.有例子的 ...

呵呵,言重了,批处理方面,GMY 老师和 美泰更在行,
回复

使用道具 举报

35#
发表于 2006-6-5 11:24:11 | 只看该作者
原帖由 老毛桃 于 2006-6-5 11:18 AM 发表

呵呵,言重了,批处理方面,GMY 老师和 美泰更在行,



看到你写的已经很棒,要是能学会象你的一样,就算烧高香了,还是弄个教材吧! 我们等着呢,GMY 老师和 美泰他们可能写的会更深,我们更学不会.象这句: FOR /F %%i in ('dir /b %Ds%') do ECHO %Ds%\%%i >>%TF%,有那么多的%符号和>>号,真迷糊了.
回复

使用道具 举报

36#
 楼主| 发表于 2006-6-5 13:01:35 | 只看该作者
原帖由 雨哭了 于 2006-6-5 11:24 发表



看到你写的已经很棒,要是能学会象你的一样,就算烧高香了,还是弄个教材吧! 我们等着呢,GMY 老师和 美泰他们可能写的会更深,我们更学不会.象这句: FOR /F %%i in ('dir /b %Ds%') do ECHO %Ds%\%%i >>% ...

呵呵,我就将这个 FOR /F %%i in ('dir /b %Ds%') do ECHO %Ds%\%%i >>%TF% 给你讲讲吧

这是一个 FOR 语句,括号中的 'dir /b %Ds%' 是指在 For 中需要运行的一个命令,如果是双引号,则是从引号中的字符串里查找,如果是单引号(就像现在)则是从命令结果中查找,如果没有引号,则是从指定文件内容中查找。

这里的 dir /b %Ds% 命令,是从我们指定的文件夹中获取文件清单信息。dir /b 是为了直接只显示文件名称,而不显示文件大小、修改日期等信息。%Ds% 是前面指定的变量,即我们输入的待压缩文件所在的文件夹名称。
ECHO %Ds%\%%i>>%TF%
这是为了将 dir /b 的每一行结果输出到预设的临时文件变量 %TF% 中,注意 >> 的用法,一个 > 是覆盖原文件 %TF% 的数据,而 >> 是另起一行添加数据到 %TF% 中。另外需要注意的是,直接运行 For 语句的话,变量 i 只要前面加一个 % 即可,而如果这个语句在批处理中,需要以 %%i 的形式表示。

[ 本帖最后由 老毛桃 于 2006-6-5 01:03 PM 编辑 ]
回复

使用道具 举报

37#
发表于 2006-6-5 14:56:24 | 只看该作者
呵呵,我就将这个 FOR /F %%i in ('dir /b %Ds%') do ECHO %Ds%\%%i >>%TF% 给你讲讲吧

这是一个 FOR 语句,括号中的 'dir /b %Ds%' 是指在 For 中需要运行的一个命令,如果是双引号,则是从引号中的字符串里查找,如果是单引号(就像现在)则是从命令结果中查找,如果没有引号,则是从指定文件内容中查找。

这里的 dir /b %Ds% 命令,是从我们指定的文件夹中获取文件清单信息。dir /b 是为了直接只显示文件名称,而不显示文件大小、修改日期等信息。%Ds% 是前面指定的变量,即我们输入的待压缩文件所在的文件夹名称。
ECHO %Ds%\%%i>>%TF%
这是为了将 dir /b 的每一行结果输出到预设的临时文件变量 %TF% 中,注意 >> 的用法,一个 > 是覆盖原文件 %TF% 的数据,而 >> 是另起一行添加数据到 %TF% 中。另外需要注意的是,直接运行 For 语句的话,变量 i 只要前面加一个 % 即可,而如果这个语句在批处理中,需要以 %%i 的形式表示。


谢谢!  又知道了一点点.  以后得多向你请教才是.

/F 在FOR中是什么意思?

[ 本帖最后由 雨哭了 于 2006-6-5 02:58 PM 编辑 ]
回复

使用道具 举报

38#
 楼主| 发表于 2006-6-5 15:24:37 | 只看该作者
原帖由 雨哭了 于 2006-6-5 14:56 发表


谢谢!  又知道了一点点.  以后得多向你请教才是.

/F 在FOR中是什么意思?

/F 呵呵,你说呢?

自己在命令提示符中运行 for /?,就会明白了
回复

使用道具 举报

39#
发表于 2006-6-5 16:19:37 | 只看该作者
下了个收藏!
回复

使用道具 举报

40#
发表于 2006-6-5 23:01:16 | 只看该作者
原帖由 老毛桃 于 2006-6-2 10:01 PM 发表

呵呵,接着!

找这个玩意 N 难!在 Baidu、Google、MSN 都搜索不到下载地址呢!

打包的体积 N 小,唯一比不上 QBFC 的就是不能加壳,也不能自定义图标(不过这可以借助 ResHacher 解决!)

QBFC 我早就有了,感谢老毛桃提供这个好东东。
回复

使用道具 举报

41#
 楼主| 发表于 2006-6-5 23:53:25 | 只看该作者
原帖由 6618 于 2006-6-5 23:01 发表

QBFC 我早就有了,感谢老毛桃提供这个好东东。

呵呵,将你无忧银行的钱给我,跟我买这个好东东
回复

使用道具 举报

42#
发表于 2006-6-6 08:43:22 | 只看该作者
原帖由 老毛桃 于 2006-6-5 11:53 PM 发表

呵呵,将你无忧银行的钱给我,跟我买这个好东东

哈哈,我无忧银行的存款为0,是穷光蛋一个。
回复

使用道具 举报

43#
发表于 2006-6-10 23:21:41 | 只看该作者
原帖由 6618 于 2006-6-6 08:43 AM 发表

哈哈,我无忧银行的存款为0,是穷光蛋一个。



谦虚!
回复

使用道具 举报

44#
发表于 2006-6-11 19:34:22 | 只看该作者
好。支持一下!
回复

使用道具 举报

45#
发表于 2006-6-11 21:05:41 | 只看该作者
嘿嘿,ms用类似winrar一样的cab压缩工具啊。。
回复

使用道具 举报

46#
 楼主| 发表于 2006-6-12 09:33:33 | 只看该作者
原帖由 yangyongwang 于 2006-6-11 21:05 发表
嘿嘿,ms用类似winrar一样的cab压缩工具啊。。

楼上此话好像不通啊
回复

使用道具 举报

47#
发表于 2006-8-7 10:46:31 | 只看该作者
昏~ 这么好的帖子,是精华帖子吧~ 强烈顶
回复

使用道具 举报

48#
发表于 2006-8-7 11:07:35 | 只看该作者
我也发表一个
用的时候解包
然后在Source下建立一个目录,将需要压缩的文件放入,压缩后的文件名就是在Source目录下起的目录名
压缩后的文件在Target在找

用法:
Make 目录名(Source下建立的目录)

[ 本帖最后由 cgistar 于 2006-8-7 11:11 AM 编辑 ]

MAKEV2.rar

35.62 KB, 下载次数: 377, 下载积分: 无忧币 -2

MAKE V2

回复

使用道具 举报

49#
发表于 2006-8-7 13:34:17 | 只看该作者
分享感谢,学习下
回复

使用道具 举报

50#
发表于 2006-8-7 14:24:28 | 只看该作者
老毛桃,这个注册表选项,只能对单个文件有效,如何使其对整个目录有效?
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\CAB最大压缩]

[HKEY_CLASSES_ROOT\*\shell\CAB最大压缩\command]
@="makecab /v3 /D CompressionType=LZX /D CompressionMemory=21 \"%1\""
回复

使用道具 举报

51#
发表于 2006-8-8 09:32:58 | 只看该作者
不错,
回复

使用道具 举报

52#
发表于 2006-8-8 09:54:02 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

53#
发表于 2006-8-8 10:24:05 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

54#
发表于 2006-8-13 14:07:55 | 只看该作者
呵呵 谢谢分享
回复

使用道具 举报

55#
发表于 2006-8-13 21:05:47 | 只看该作者
很适合那些不会批处理的菜鸟
回复

使用道具 举报

56#
发表于 2006-8-15 12:43:51 | 只看该作者
正在找makecab最大压缩的方法,收到
回复

使用道具 举报

57#
 楼主| 发表于 2006-8-16 10:40:39 | 只看该作者
原帖由 安情 于 2006-8-8 09:54 发表
老毛讲的批处理,非常好,真是学了.能不能讲得更为详细一些,特别是for,和变量的用法和设置
能不能提供一下打包的工具"QBFC"
是不是任何一个批处理都能转换成exe文件.以上的两个QBFC和ExeScript都可以吧 ...

这个不一定的,我没有测试过,不好说 QBFC.part1.rar (500 KB, 下载次数: 1153) QBFC.part2.rar (500 KB, 下载次数: 2531) QBFC.part3.rar (108.27 KB, 下载次数: 631)

[ 本帖最后由 老毛桃 于 2006-8-16 10:42 AM 编辑 ]
回复

使用道具 举报

58#
 楼主| 发表于 2006-8-16 10:43:58 | 只看该作者
原帖由 jjiesy 于 2006-8-8 14:19 发表
压缩好的文件保存在哪里啊,我指定了也不行啊,还是找不到啊

指定的路径全名称中不可易出现空格,如果不指定,则会默认保存在 MCab.CMD 所在的文件夹中
回复

使用道具 举报

59#
发表于 2006-8-16 13:59:38 | 只看该作者
我拷,这个帖子不顶,那就太没人性了.....
回复

使用道具 举报

60#
发表于 2006-8-19 04:44:50 | 只看该作者
不错的说,顶!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-12-11 07:02

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表