![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-03 03:25 |
共 48,038 主题排行 / 350,123 发帖 / 今日 1 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 如果1个文件夹里有*.txt或*.exe则把该文件夹压缩 |
| 可打印版本 1,136 / 12 |
| 第1楼 tuesposo | 发表于 2007-01-17 04:07 |
| 初级用户 发帖 28 积分 68 | |
|
如果1个文件夹里有*.txt或*.exe则把该文件夹压缩 我想实现这个功能:
如果1个文件夹里有*.txt或*.exe,则把该文件夹压缩为.rar文件,压缩完后并把这个原文件夹删除,这个功能应该如何实现啊? 注:不包含子文件夹,如一级文件夹--二级文件夹--三级文件夹---5.txt 则把三级文件夹压缩为三级文件夹.rar,压缩完后并把原三级文件夹删除. 一级文件夹和二级文件夹不用动. 这个有办法做吗? |
|
| 第2楼 redtek | 发表于 2007-01-17 04:39 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
RAR的 /DF 参数(生成压缩档案后删除文件)就支持压缩完目标文件或文件夹以后将其删掉。
所以,压缩以后的删除目录的工作不用交给DOS命令去做,让rar去做就行了,/DF参数支持。 RAR的 /R 参数支持压缩指定目录以内这个目录内所有子目录。 假如我要压缩 “C:\TEMP\STR” 这个目录以及它下面的所有子目录。 C:\TEMP\STR 目录结构如下: 使用 rar.exe 操作过程: 当执行完以后,C:\TEMP\STR 目录被压缩以后,由RAR自动将其删掉了。 如果你只希望压缩当前指定的目录文件夹,而不希望压缩目录文件夹内的子目录,则rar压缩时无需加 /r 参数即可。 更详细的 rar 命令行操作详见它的帮助信息: RAR /? (另: rar.exe 在 WinRAR 目录中,系统没有给它设置路径。所以要在任何地方运行它请为其所在目录设置路径,或将 rar.exe 拷贝到 Windows 目录下就可以不用设置路径了) (注:上面只是可行操作原理。关于具体的实际代码兄可以继续研究~:) [ Last edited by redtek on 2007-1-16 at 03:43 PM ] |
|
| 第3楼 zh159 | 发表于 2007-01-18 23:44 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
dir/s *.exe *.txt>nul 2>nul&&rar ......
|
|
| 第4楼 tuesposo | 发表于 2007-01-19 00:01 |
| 初级用户 发帖 28 积分 68 | |
|
你的不行啊
|
|
| 第5楼 zh159 | 发表于 2007-01-19 00:17 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
不会自己加上路径么?
dir/s c:\temp\str *exe *.txt>nul 2>nul&&rar a /r /df demo c:\temp\str |
|
| 第6楼 tuesposo | 发表于 2007-01-19 02:25 |
| 初级用户 发帖 28 积分 68 | |
|
还是不行,不是路径的问题,好象对这个文件夹也是一个变量的问题
|
|
| 第7楼 zh159 | 发表于 2007-01-19 02:35 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
你得用for将各个文件夹单独一个个列出来(完整路径)再
获取子目录路径:dir/s/ad/b 路径 dir “%路径%” *exe *.txt>nul 2>nul&&rar a /r /df demo “%路径%” [ Last edited by zh159 on 2007-1-18 at 01:39 PM ] |
|
| 第8楼 zerocq | 发表于 2007-01-19 02:51 |
| 中级用户 发帖 196 积分 458 | |
|
在一级目录命令窗口输入
for /f "delims=的" %a in ('dir /a/s *.txt^|find ":\"') do @echo %a 把含有txt文件的子目录全设成变量然后rar [ Last edited by zerocq on 2007-1-19 at 02:52 AM ] |
|
| 第9楼 tuesposo | 发表于 2007-01-19 03:04 |
| 初级用户 发帖 28 积分 68 | |
|
看不懂脑子混了
|
|
| 第10楼 tuesposo | 发表于 2007-01-19 03:13 |
| 初级用户 发帖 28 积分 68 | |
|
谁好帮我完整写出来啊,我是新手不懂啊
|
|
| 第11楼 zh159 | 发表于 2007-01-19 03:28 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
命令行:
for /f "delims=的" %a in ('dir /a/s *.txt *.exe^|find ":\"') do rar a /r /df demo %a 批处理: for /f "delims=的" %%a in ('dir /a/s *.txt *.exe^|find ":\"') do rar a /r /df demo %%a |
|
| 第12楼 tuesposo | 发表于 2007-01-19 03:43 |
| 初级用户 发帖 28 积分 68 | |
|
找不到文件
|
|
| 第13楼 everest79 | 发表于 2007-01-19 05:36 |
| 金牌会员 发帖 1,127 积分 2,564 | |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |