【问题标题】:Unzip all files in a folder using 7zip in CMD line在 CMD 行中使用 7zip 解压缩文件夹中的所有文件
【发布时间】:2013-09-25 00:42:29
【问题描述】:

我正在使用这些行来提取文件夹中的所有 JAR 文件,目标可以是同一个:

<b>set SEVENZIP_EXE=C:\Program Files\7-Zip\<br>
set INPUT_FOLDER=D:\jar

for /f "tokens=1-2 delims=. " %%a in ('dir *.jar /a-d/b') do "%SEVENZIP_EXE%" x -aoa -o"%INPUT_FOLDER%" %%a.%%b

但我得到的只是: %%a 在这个时候是出乎意料的。 !!

有什么建议吗?
谢谢

【问题讨论】:

    标签: batch-file cmd unzip


    【解决方案1】:

    您是在命令提示符下运行它,而不是在批处理文件上。如果你在提示符下,你应该只使用一个 %:

    set INPUT_FOLDER=D:\jar
    
    for /f "tokens=1-2 delims=. " %a in ('dir *.jar /a-d/b') do "%SEVENZIP_EXE%" x -aoa -o"%INPUT_FOLDER%" %a.%b
    

    我还注意到您没有正确设置 7-zip 可执行文件的路径:

    set SEVENZIP_EXE=C:\Program Files\7-Zip\7z.exe
    

    如果不起作用,请尝试将其作为批处理文件运行

    @echo off
    
    set SEVENZIP_EXE=C:\Program Files\7-Zip\7z.exe
    set INPUT_FOLDER=D:\jar
    
    for /f "tokens=1-2 delims=. " %%a in ('dir *.jar /a-d/b') do "%SEVENZIP_EXE%" x -aoa -o"%INPUT_FOLDER%" %%a.%%b
    

    【讨论】:

    • 呃,tokens=1-2 是做什么的? dir 命令使用 /a-d/b 参数每行只返回一项,不是吗?是delims 参数然后在点处分割每一行,tokens 参数告诉命令行将这两部分都返回到do 指令,如%a%b
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-29
    • 1970-01-01
    • 2016-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多