0

我正在尝试运行一个仅使用 7z.exe 提取 .jar 文件的批处理文件,
这是我的代码:

set location=%cd%
set filename=%location%\outputfolder
set unzip=%location\resources

cd %unzip%
7z e -o%filename% -ir!*.jar -y "%filename%\*.zip"

但它给出了一个例外:error: incorrect command line所以我删除了-ir!*.jar它然后它给出了另一个错误:error: cannot use absolute pathnames for this command所以我将它更改-o%filename%-oC:\outputfolder它并且它可以工作!!!!!!(这是我的脚本现在):

set location=%cd%
set filename=%location%\outputfolder
set unzip=%location\resources

cd %unzip%
7z e -oC:\outputfolder -y "%filename%\*.zip"

但我需要这些功能
如何修复?

4

1 回答 1

1

用双引号试试,%cd%可能有空格:

7z e -o"%filename%" -i!*.jar -y "%filename%\*.zip"

帮助屏幕中的用法:

7-Zip (A) 9.20 版权所有 (c) 1999-2010 Igor Pavlov 2010-11-18

用法:7za [...] [...]
       []


  a:将文件添加到存档
  b:基准
  d:从存档中删除文件
  e:从存档中提取文件(不使用目录名)
  l:列出归档的内容
  t:测试存档的完整性
  u:更新文件到存档
  x:具有完整路径的提取文件

  -ai[r[-|0]]{@listfile|!wildcard}:包含档案
  -ax[r[-|0]]{@listfile|!wildcard}:排除档案
  -bd:禁用百分比指示器
  -i[r[-|0]]{@listfile|!wildcard}:包含文件名
  -m{Parameters}:设置压缩方法
  -o{Directory}:设置输出目录
  -p{密码}:设置密码
  -r[-|0]:递归子目录
  -scs{UTF-8 | 赢 | DOS}:为列表文件设置字符集
  -sfx[{name}]:创建 SFX 存档
  -si[{name}]:从标准输入读取数据
  -slt:显示 l(列表)命令的技术信息
  -so:将数据写入标准输出
  -ssc[-]:设置敏感大小写模式
  -ssw:压缩共享文件
  -t{Type}:设置存档类型
  -u[-][p#][q#][r#][x#][y#][z#][!newArchiveName]:更新选项
  -v{Size}[b|k|m|g]:创建卷
  -w[{path}]:分配工作目录。空路径表示临时目录
  -x[r[-|0]]]{@listfile|!wildcard}:排除文件名
  -y:对所有查询假设是

在此处输入图像描述

于 2013-08-21T06:00:55.253 回答