无忧启动论坛

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

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

[复制链接]
91#
发表于 2006-9-24 15:30:41 | 只看该作者
回复

使用道具 举报

92#
发表于 2006-9-25 18:01:21 | 只看该作者
很不错的东东啊,用来试试!!
回复

使用道具 举报

93#
发表于 2006-9-25 23:59:55 | 只看该作者
瑞星其实也很呢个,弹出那个修改注册表的就够烦人,不知道同事怎么可以忍受。
近来不是有个类似瑞星名字的病毒(少个d的),已经把瑞星搞到启动不了。哎
回复

使用道具 举报

94#
发表于 2006-9-26 08:10:46 | 只看该作者
好东西啊
回复

使用道具 举报

95#
发表于 2006-9-27 14:34:20 | 只看该作者
认真看完了所有的贴...
学会了不少东东...
回复

使用道具 举报

96#
发表于 2006-9-27 15:40:41 | 只看该作者
请楼主赐教,我下载的MCab怎么才能正常使用?谢谢!

Snap1.GIF (16.5 KB, 下载次数: 146)

图片

图片
回复

使用道具 举报

97#
发表于 2006-9-27 16:10:48 | 只看该作者
强横  支持一下
回复

使用道具 举报

98#
发表于 2006-9-27 16:58:43 | 只看该作者
原帖由 安情 于 2006-8-8 10:24 AM 发表
在xp下运行,能打开软件界面.但界面内老提示setup.inf找不到.下面 却提示成功,然而找不到压缩好的包呀,难道不能在xp下使用它吗?

我也是同样的问题,请赐教.
回复

使用道具 举报

99#
 楼主| 发表于 2006-9-27 22:07:42 | 只看该作者
原帖由 d590520 于 2006-9-27 16:58 发表

我也是同样的问题,请赐教.

这个是 Makecab 不能处理子目录造成的,Windows 自带的 Iexpress 也是这样,呵呵,我也不能脱俗,抱歉
回复

使用道具 举报

100#
发表于 2006-9-27 22:13:48 | 只看该作者
wincab可以压缩子目录,可惜在dos下解不出来的,只能在windows中用winrar解压,没什么意义。
回复

使用道具 举报

101#
发表于 2006-9-28 15:43:58 | 只看该作者
原帖由 老毛桃 于 2006-9-27 10:07 PM 发表

这个是 Makecab 不能处理子目录造成的,Windows 自带的 Iexpress 也是这样,呵呵,我也不能脱俗,抱歉

感谢楼主的指点!
回复

使用道具 举报

102#
发表于 2006-9-30 21:50:57 | 只看该作者
也可以用wincab软件进行cab打包
回复

使用道具 举报

103#
发表于 2006-10-25 18:49:54 | 只看该作者
支持一下
回复

使用道具 举报

104#
发表于 2006-10-26 10:26:48 | 只看该作者
原帖由 沙漠之子 于 2006-8-25 08:34 AM 发表




@="makecab /v3 /D CompressionType=LZX /D CompressionMemory=21 \"%1\""


这个好像在很多文件上面点右键没有显示出来。
我这样改下,我这里就可以了。
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\""
回复

使用道具 举报

105#
发表于 2006-10-29 07:01:55 | 只看该作者
原帖由 老毛桃 于 2006-6-2 08:26 PM 发表

呵呵,是的,确实是用 QBFC 打的包。

本来想用 Script2EXE 打包的,不过临时找不到 Script2EXE,所以将就着用了。用 Script2EXE 打包的可执行文件只有 12KB,体积更小。用 ResHacker 也可以更改文件图标。
...

呵呵,好人哟!支持你!
回复

使用道具 举报

106#
发表于 2006-10-29 19:42:27 | 只看该作者
强啊,我也在学批处理呢
回复

使用道具 举报

107#
发表于 2006-10-30 13:33:16 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

108#
发表于 2006-10-30 13:37:50 | 只看该作者
  其实CMD窗口也支持拖放的!
回复

使用道具 举报

109#
 楼主| 发表于 2006-11-2 18:24:13 | 只看该作者
原帖由 namejm 于 2006-10-30 13:37 发表
  其实CMD窗口也支持拖放的!

不错,而且连需要加引号的情况都自动处理好了
回复

使用道具 举报

110#
发表于 2006-11-3 22:58:59 | 只看该作者
支持
回复

使用道具 举报

111#
发表于 2006-11-3 23:51:39 | 只看该作者
支持
回复

使用道具 举报

112#
发表于 2006-11-4 02:06:58 | 只看该作者
毛桃兄,好兄弟!
回复

使用道具 举报

113#
发表于 2006-11-4 18:56:35 | 只看该作者
嗯。。不错呀。
回复

使用道具 举报

114#
发表于 2006-11-4 20:38:12 | 只看该作者
辛苦了
老毛
回复

使用道具 举报

115#
发表于 2006-11-4 22:43:54 | 只看该作者
老毛桃,你好

若将
For /F %%i In ('dir /b %Ds%') do ECHO %Ds%\%%i >>%TF%
改为
dir  /a-d /b /s %Ds% >> %TF%


若没有子目录,文件同你的一样
若有子目录,则会将字目录中的内容添加上去,很爽,刚一不小心发现.
不过压缩不带相对路径,只是文件简单压缩.需要的可以使用两个版本.
我看了所有发言,好像没有人提及.

特意网上查拉一下.
http://msdn.microsoft.com/librar ... i/html/comp_cab.asp
有帮助,可以放入目录

[ 本帖最后由 caicaiying 于 2006-11-5 02:43 AM 编辑 ]
回复

使用道具 举报

116#
发表于 2006-11-5 02:28:48 | 只看该作者
收下了,感谢分享!
回复

使用道具 举报

117#
发表于 2006-11-5 15:32:17 | 只看该作者

整了个Sendto版本,请高手指点指点.

看了老毛桃的思路,也做了一个Sendto版本,code 如下:

@echo off
set DestinationDi=1

if {%1}=={} goto _end

rem 是否盘符,设置当前目录
set curdir=%~sf1
set bfirst=0

rem 若在单个cab文件上发送,同时不存在参数文件,则生成参数文件,否则压缩

if {%2}=={} (
if /I {%~x1}=={.cab} (
  if not exist "%~dp1~not_cab~" (
   echo 单文件压缩>"%~dp1~not_cab~"
   goto _end0
  )
)
)


if not {"%~n1"}=={""}  set curdir=%~sdp1

:_begin

cd /d "%curdir%"

echo ;压缩文件列表> ~tmp.ddf
rem 光盘
if exist "%curdir%\~tmp.ddf" goto _begin2

echo 输入存储路径:(按C退出)
set curdir=%temp%
set /p curdir=%temp%
if /I "%curdir%"=="C"  goto _end0
goto _begin

:_begin2

rem dir D:\GreenTool\我的注册表\IE菜单\~not_cab~
rem 若是当前目录下存在~not_cab~_文件,则单个文件压缩
if exist "%curdir%~not_cab~" goto _notcab


echo .set CompressionType=LZX ;压缩类型>> ~tmp.ddf
echo .set CompressionMemory=21 >> ~tmp.ddf
echo .set MaxDiskSize=CDROM ;一个目录>> ~tmp.ddf
echo .set Cabinet=On ;打包>> ~tmp.ddf
echo .set Compress=On ;压缩>> ~tmp.ddf
echo .set FolderSizeThreshold=5000000>> ~tmp.ddf
echo .set CabinetNameTemplate=%~n1%.cab ;压缩文件(不含路径) >> ~tmp.ddf
echo .set DiskDirectoryTemplate="%curdir%" ;压缩路径(双引号) >> ~tmp.ddf

goto _iscab

:_notcab

if {}=={%1} goto _end
Set C0=MAKECAB /D CompressionType=LZX /D CompressionMemory=21 /D MaxDiskSize=CDROM /D Cabinet=On /D Compress=On /D FolderSizeThreshold=5000000
rem cd /d "%~dp1"
rem 若是文件,则压
dir "%~f1" /ad | find /I "<dir>" >nul
if {%errorlevel%}=={1} %C0% /D DiskDirectoryTemplate=%curdir%  "%~f1"  

shift
goto _notcab

:_iscab


if {}=={%1} goto _endcab

rem 若是文件
dir "%~f1" /ad | find /I "<dir>" >nul

if {%errorlevel%}=={1} (  
if {"%bfirst%"}=={"0"} (
  echo .set DestinationDir="%~p1" ; 存储路径>> ~tmp.ddf
  echo .set SourceDir="%~dp1" ; 源路径>> ~tmp.ddf
  set bfirst=1
)
echo "%~nx1">> ~tmp.ddf
) else (
for /R %1 %%i in (.) do (
  echo .set DestinationDir="%%~pnxi" ; 存储路径(加双引号)>> ~tmp.ddf
  echo .set SourceDir="%%~dpnxi" ; 源路径(加双引号) >> ~tmp.ddf
  for /F "usebackq delims=," %%j in (`dir /b /A-D "%%i"`) do ( if exist %%~dpnxi\%%j @echo "%%j" >> ~tmp.ddf )
)
set bfirst=0
)

shift

goto _iscab

:_endcab

makecab /f ~tmp.ddf

:_end
explorer /e, "%curdir%"
:_end0


解释:

直接将上述内容存为文件放入sendto文件夹即可.

用户选中一批文件或一个,会按目录生成cab压缩文件,不过是按绝对路径生成(美中不足).
但全部搬到根目录,则可以.

另外,若在当前文件夹下有~not_cab~文件,则会生成 XXX.XX_形式的压缩文件.

一个生成~not_cab~文件的懒方法是,首先生成一个.cab文件,再通过此cab文件的Sendto就可生成
~not_cab~文件.

一些垃圾文件没有删掉,为的是大家能够明白一些东西.自己可(修改)删之.

对于如同光盘类似的介质,会要求输入保存路径,模认是临时文件夹.按C退出.

在Sendto里最好用快捷方式,可以最小化运行.不给大家截图了,比较简单.

内容纯属学习,出问题我不管.

借用了一些老毛桃的东西,在此谢过.

希望能顶上一段时间.操作方便,基本能满足帖子里的要求.花了老半天的时间才大体上调试好.

另外,我的一个注册名"菜菜鹰"忘记密码了,本人想恢复那个账户,望坛主告知方法,或私下解决.主要是安全提问不知道是啥了.

[ 本帖最后由 caicaiying 于 2006-11-5 03:41 PM 编辑 ]
回复

使用道具 举报

118#
发表于 2006-11-5 19:18:49 | 只看该作者
感谢老毛桃分享.
回复

使用道具 举报

119#
发表于 2006-11-12 20:21:48 | 只看该作者
多谢老毛桃,学到不少东西!
回复

使用道具 举报

120#
发表于 2006-11-15 06:45:46 | 只看该作者

感谢!

这样的好贴怎么能不顶!!!!!
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

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

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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