• 请不要在回答技术问题时复制粘贴 AI 生成的内容
sjmcefc2
V2EX  ›  程序员

求教 7zip 如何利用命令行来压缩某路径下的特定文件夹?

  •  
  •   sjmcefc2 · Dec 2, 2022 · 2254 views
    This topic created in 1280 days ago, the information mentioned may be changed or developed.
    E:
    |-A1
    | |-c_M202210_(随机数串)
    | |-c_M202209_(随机数串)
    | |-c_M202208_(随机数串)
    | |-c_M202207_(随机数串)
    |-A2
    | |-c_M202210_(随机数串)
    | |-c_M202209_(随机数串)
    | |-c_M202208_(随机数串)
    
    
    

    想利用命令行把包含 M202210 的文件夹打包,怎么做呢

    6 replies    2022-12-16 15:38:34 +08:00
    lchynn
        1
    lchynn  
       Dec 2, 2022
    set copy_target_path=e:\A1\c_M202210_\
    set targetfile=*.docx

    for /f "delims=" %%s in ('dir /b/a-d/s "%target_path%"\"%targetfile%"') do (
    echo %%s
    7z a "%%s.7z" "%%s"
    )
    wizardyhnr
        2
    wizardyhnr  
       Dec 3, 2022
    -i Include filenames a, d, e, l, t, u, x, -r, -x
    -i[<recurse_type>]<file_ref> <recurse_type> ::= r[- | 0] <file_ref> ::= @{listfile} | !{wildcard}

    <recurse_type>
    Specifies how wildcards and file names in this switch must be used. If this option is not given, then the global value, assigned by the -r (Recurse) switch will be used. For more details see specification of the -r (Recurse) switch.

    <recurse_type> ::= r[- | 0]



    <file_ref>
    Specifies filenames and wildcards, or a list file, for files to be processed.

    <file_ref> ::= @{listfile} | !{wildcard}

    Option Description
    {listfile} Specifies name of list file. See List file description.
    {wildcard} Specifies wildcard or filename.
    7z a -tzip src.zip *.txt -ir!DIR1\*.cpp adds to src.zip archive all *.txt files from current directory and all *.cpp files from directory DIR1 and from all it's subdirectories
    leido
        3
    leido  
       Dec 3, 2022
    如 2#,7z 的-r 开关就是干这事的。
    sjmcefc2
        4
    sjmcefc2  
    OP
       Dec 16, 2022
    @lchynn 这个只能备份 A1,但是也要备份 A2 或者其他的?

    @leido 这个怎么-r 结合到一起吗
    sjmcefc2
        5
    sjmcefc2  
    OP
       Dec 16, 2022
    set copy_target_path=e:\A1\c_M202210_\
    set targetfile=*.docx

    for /f "delims=" %%s in ('dir /b/a-d/s "%target_path%"\"%targetfile%"') do (
    echo %%s
    7z a "%%s.7z" "%%s"
    )

    后面可以直接替换成-r 吗
    lchynn
        6
    lchynn  
       Dec 16, 2022
    @sjmcefc2 带目录要试一下, 我没试过, 我一般就是用来压缩备份单个文件。用 DIR 筛出后 FOR 循环压缩
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2894 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 50ms · UTC 15:17 · PVG 23:17 · LAX 08:17 · JFK 11:17
    ♥ Do have faith in what you're doing.