中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求助:压缩时怎样选择这些文件?
作者:
标题: 求助:压缩时怎样选择这些文件? 上一主题 | 下一主题
qwertl
中级用户





积分 461
发帖 243
注册 2007-10-14
状态 离线
『楼 主』:  求助:压缩时怎样选择这些文件?

只需备份d:\Data\下的*.ini,*.id,*.nsf,*.ndk及其子文件夹dgoa,bmmail,mail的全部文件进行备份,data目录下的其它文件及子目录不需要备份.

想用rar将这些文件压缩后再上传FTP备份.压缩指令怎样将这些文件及子目录一次选中进行压缩生成一个压缩包呢?

%rar_%  a  -r   -agYYYYMMDD-NN -n*.ini -n*.id -n*.nsf -n*.ndk  "%desfolder%\lotus"  "%SrcFolder%\*.*"   
这样选择文件不对.

[ Last edited by qwertl on 2008-8-28 at 10:49 AM ]

2008-8-28 10:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qwertl
中级用户





积分 461
发帖 243
注册 2007-10-14
状态 离线
『第 2 楼』:  

用多条RAR命令每次选不同的目录压缩到一个包, 这样就不能用-agYYYYMMDD-NN 开关了.


开关 -N<文件> - 仅包含指定的文件
--------------------------------------------------------------------------------
仅包含指定的文件。通配符在文件掩码的名称和文件部分都可用。你可以数次指定开关‘ -n’。此关不能替换通常的文件掩码,仍然需要在命令行中输入。它是一个附加的过滤器限制处理的文件那些仅匹配在杗 开关中指定掩码的文件。某些时候它可以帮助减少命令行的长度。

例如,如果你需要压缩在 Project 和 Info 文件夹内的所有的 *.txt 和 *.lst 文件,你可以输入 :

WinRAR a -r text Project\*.txt Project\*.lst Info\*.txt Info\*.lst

或使用开关 -n:

WinRAR a -r -n*.txt -n*.lst text Project Info

开关 -N@<列表文件> - 使用指定的列表文件包含文件


--------------------------------------------------------------------------------


和 -n<文件> 开关类似,但是从列表文件读取掩码

例子:

WinRAR a -r -n@inclist.txt text Project Info

2008-8-28 11:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
moniuming
银牌会员

永远的菜鸟



积分 1335
发帖 574
注册 2007-11-27
来自 广西
状态 离线
『第 3 楼』:  试试这个?

如果rar安装目录不一样,请做适当的更改
@echo off
rem 请放在d:\data\目录下运行
set rar_="c:\program files\winrar\rar.exe"
for %%a in (ini id nsf ndk) do (
   %rar_% a temp.rar *.%%a
)
for %%a in (dgoa bmmail mail) do (
   for /f "delims=" %%b in ('dir /s/b/a-d "%%a\*.*"') do (
      %rar_% a -ep1 temp.rar %%b
   )
)
echo.&echo 任务完成
ping -n 4 127.1>nul


2008-8-28 11:33
查看资料  发短消息 网志   编辑帖子  回复  引用回复
qwertl
中级用户





积分 461
发帖 243
注册 2007-10-14
状态 离线
『第 4 楼』:  

for的功能真强  ,  这是叫双循环吗

还有没有方法一条语句搞定呢

2008-8-28 21:35
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 5 楼』:  

可以,你把3楼的代码用&连成一句就行了。



2008-8-28 21:39
查看资料  发短消息 网志   编辑帖子  回复  引用回复
qwertl
中级用户





积分 461
发帖 243
注册 2007-10-14
状态 离线
『第 6 楼』:  

怎样设置变量让批处理可以放任意目录呢?

是这样吗?
@echo off
rem 请放在d:\data\目录下运行
set srcdir=d:\data
set rar_="c:\program files\winrar\rar.exe"
for %%a in (ini id nsf ndk) do (
   %rar_% a temp.rar  %srcdir%\*.%%a
)
for %%a in (dgoa bmmail mail) do (
   for /f "delims=" %%b in ('dir /s/b/a-d "%srcdir%\%%a\*.*"') do (
      %rar_% a -ep1 temp.rar %%b
   )
)
echo.&echo 任务完成
ping -n 4 127.1>nul

for %%a in (dgoa bmmail mail)   这个括号里每个目录是否要加%srcdir% 呢?好象是只能是文本.

[ Last edited by qwertl on 2008-8-29 at 10:16 AM ]

2008-8-29 10:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 7 楼』:  

括号里每个目录不要加%srcdir%



2008-8-29 17:30
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: