【问题标题】:7zip: errors, problems, and questions7zip:错误、问题和疑问
【发布时间】:2013-08-23 06:35:28
【问题描述】:

我正在尝试使用 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"

但我需要这些功能
如何解决?

【问题讨论】:

    标签: windows batch-file unzip 7zip


    【解决方案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:对所有查询假设是

    【讨论】:

    • @user2669763 我测试过,在这里工作正常。我将帮助屏幕添加到我的答案中。
    • 你能告诉我这是什么吗? SETLOCAL ENABLEDELAYEDEXPANSION 这就是阻止 7zip 运行的原因!有什么办法可以取消吗?
    • 我在您的代码中看不到任何setlocalDelayed expansion 是访问 iffor 代码块中的变量所必需的。
    猜你喜欢
    • 1970-01-01
    • 2015-12-19
    • 1970-01-01
    • 2016-01-25
    • 2020-09-12
    • 1970-01-01
    • 1970-01-01
    • 2015-05-25
    • 1970-01-01
    相关资源
    最近更新 更多