Board logo

标题: [文件操作] 如何将文件名部分相同的文件打包进同一个压缩包里? [打印本页]

作者: wdlwdlwwddll    时间: 2015-12-31 15:01     标题: 如何将文件名部分相同的文件打包进同一个压缩包里?

本帖最后由 pcl_test 于 2016-1-1 13:47 编辑

希望需要实现以下功能:
1.例如
文件夹下有:
北京A.xls、北京B.xls、北京C.xls
广州A.xls、广州B.xls、广州C.xls
南京A.xls、南京B.xls
深圳B.xls、深圳C.xls
哈尔滨A.xls
呼和浩特B.xls
12个文件excel文件

运行批处理文件后分别进行打包
变为
北京.rar、广州.rar、南京.rar、深圳.rar、哈尔滨.rar、呼和浩特.rar
6个压缩文件

并且要求每个压缩文件对应不同的密码:
北京.rar-对应密码123
广州.rar-对应密码234
南京.rar-对应密码345
深圳.rar-对应密码abc……
(密码需要可以自定义)
作者: wdlwdlwwddll    时间: 2015-12-31 15:06

我知道这个对于各位大神应该不难,我也自己尝试过查了一些资料,可是依旧写不出T.T,谢谢了
作者: flyinnet9    时间: 2015-12-31 16:14

RAR 5.30 beta 1    版权所有 (C) 1993-2015 Alexander Roshal    20 七月 2015


用法:rar <命令> -<参数 1> -<参数 N> <压缩文件> <文件...>
               <@列表文件...> <解压路径\>

<命令>
  a             添加文件到压缩文件
  c             添加压缩文件注释
  ch            更改压缩文件参数
  cw            将压缩文件注释写入文件
  d             从压缩文件中删除文件
  e             提取文件无需压缩文件的路径
  f             更新压缩文件里的文件
  i[par]=<str>  查找压缩文件中的字符串
  k             锁定压缩文件
  l[t[a],b]     列出压缩文件内容 [technical[all], bare]
  m[f]          移动到压缩文件 [仅文件]
  p             打印文件到 stdout
  r             修复压缩文件
  rc            重建丢失的分卷
  rn            重命名已压缩文件
  rr[N]         添加数据恢复记录
  rv[N]         创建恢复分卷
  s[name|-]     转换压缩文件为自解压或自解压转换为压缩文件
  t             测试压缩文件
  u             更新压缩文件中的文件
  v[t[a],b]     详细列出压缩文件内容 [technical[all],bare]
  x             使用完整路径提取文件

<参数>
  -             停止参数扫描
  @[+]          禁用 [启用] 文件列表
  ac            压缩或解压后清除存档属性
  ad            添加压缩文件名到目标路径
  ag[格式]      使用当前日期生成压缩文件名
  ai            忽略文件属性
  ao            添加具有压缩属性的文件
  ap<格式>      添加路径到压缩文件中
  as            同步压缩文件内容
  c-            禁用注释显示
  cfg-          禁用读取配置
  cl            转换名称到小写
  cu            转换名称到大写
  df            压缩文件后删除原来的文件
  dh            打开已共享文件
  dr            删除文件到回收站
  ds            对固实压缩文件禁用名称排序
  dw            压缩文件后清除文件
  e[+]<attr>    设置文件排除和包含属性
  ed            不要添加空目录
  en            不要放置 '压缩文件结束' 区块
  ep            从名称里排除路径
  ep1           从名称里排除基目录
  ep2           扩展路径到完整路径
  ep3           扩展路径为完整路径包括驱动器盘符
  f             更新文件
  hp[password]  加密文件数据和文件头
  ht[b|c]       为文件校验和选择哈希类型 [BLAKE2,CRC32]
  id[c,d,p,q]   禁用信息
  ieml[addr]    通过电邮发送压缩文件
  ierr          发送所有消息到 stderr
  ilog[name]    记录错误到文件(仅注册版本)
  inul          禁用所有消息
  ioff          完成操作后关闭电脑
  isnd          启用声音
  k             锁定压缩文件
  kb            保留损坏的已解压缩文件
  log[f][=name] 将名称写入日志文件
  m<0..5>       设置压缩级别(0-存储...3-默认...5-最大)
  ma[4|5]       指定压缩格式的一个版本
  mc<par>       设置高级压缩参数
  md<n>[k,m,g]  字典大小显示为 KB, MB 或 GB
  ms[ext;ext]   指定要存储的文件类型
  mt<threads>   设置线程数
  n<file>       额外的包含过滤器的文件
  n@            从 stdin 读取额外的过滤器掩码
  n@<list>      从列表文件读取额外的过滤器掩码
  o[+|-]        设置覆盖模式
  oc            设置 NTFS 压缩属性
  oh            将硬链接保存为链接而非文件
  oi[0-4][:min] 将完全相同的文件保存为引用
  ol[a]         将符号链接作为链接处理 [绝对路径]
  or            自动重命名文件
  os            保存 NTFS 流
  ow            保存或恢复文件所有者和组
  p[password]   设置密码
  p-            不查询密码
  qo[-|+]       添加快速打开信息 [无|强制]
  r             递归子目录
  r-            禁用递归
  r0            仅为通配符名称递归子目录
  ri<P>[:<S>]   设置优先级 (0-默认,1-最小..15-最大) 和睡眠时间为 ms
  rr[N]         添加数据恢复记录
  rv[N]         创建恢复分卷
  s[<N>,v[-],e] 创建固实压缩文件
  s-            禁用固实压缩文件
  sc<chr>[obj]  指定字符集
  sfx[name]     创建自解压文档
  si[name]      从标准输入 (stdin) 读取数据
  sl<size>      处理小于指定大小的文件
  sm<size>      处理大于指定大小的文件
  t             压缩文件后测试文件
  ta<date>      处理在 <日期> 之后修改过的文件,以 YYYYMMDDHHMMSS 格式
  tb<date>      处理在 <日期> 之前修改过的文件,以 YYYYMMDDHHMMSS 格式
  tk            保存原来的压缩文件时间
  tl            设置压缩文件时间为最新的文件
  tn<time>      处理比 <时间> 较新的文件
  to<time>      处理比 <时间> 较旧的文件
  ts<m,c,a>[N]  保存或恢复文件时间(修改,创建,访问)
  u             更新文件
  v<size>[k,b]  创建分卷大小为=<size>*1000 [*1024, *1]
  vd            创建分卷之前清除磁盘内容
  ver[n]        文件版本控制
  vn            使用旧式的分卷命名方案
  vp            创建每个分卷之前暂停
  w<path>       指定工作目录
  x<file>       排除指定的文件
  x@            读取文件名以从 stdin 排除
  x@<list>      排除指定列表文件里列出的文件
  y             对所有询问假定选择“是”
  z[file]       从文件读取压缩文件注释
作者: batchuli    时间: 2016-1-1 13:19

新人路过~~~~~
作者: pcl_test    时间: 2016-1-1 14:40

本帖最后由 pcl_test 于 2016-1-1 14:48 编辑

水一发
  1. @echo off
  2. rem 指定WinRAR软件的安装路径
  3. set "rar=C:\Program Files\WinRAR\Rar.exe"
  4. for /f "tokens=1*" %%a in ('more +9 "%~f0"') do (
  5.     for %%i in ("%%a*.xls") do (
  6.         "%rar%" a -p"%%b" "%%a.rar" "%%i"
  7.     )
  8. )
  9. pause&exit
  10. 北京 123
  11. 广州 234
  12. 南京 345
  13. 深圳 abc
  14. 哈尔滨 tgb
  15. 呼和浩特 ujm
复制代码





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