如何使用7-zip分别压缩文件夹中的文件(每个文件)?

索菲·科布赞捷夫(Sophie Kobzantsev)

我在Windows 7中使用7-zip,并试图在文件夹中为自动zip文件创建批处理。

我希望将文件夹中的每个文件分别压缩。

您能看一下我的代码并提出最佳建议吗?

我成功地将所有内容从一个文件夹压缩到另一个文件夹,但还需要分别处理每个文件:

@ECHO OFF
SET hr=%time:~0,2%
IF %hr% lss 10 SET hr=0%hr:~1,1%

Set TODAY=%date:~4,2%-%date:~7,2%-%date:~10,4%-%hr%%time:~3,2%%time:~6,2%%time:~9,2%

ECHO.

ECHO Compressing files and folders in C:\zipush drive and moving to C:\new
ECHO.
7za a -tzip "C:\new-drive-%TODAY%.zip" "C:\zipush*" -mx5
ECHO.

ECHO Delete the files in orginal folder 
DEL "C:\zipush\*.*"
PAUSE
IT暴徒忍者

以下是您需要完成的循环,以使用的命名约定将每个文件压缩到其自己的zip文件<orignalfilename>.<extension>.zip,然后如果先前文件的zip成功,则删除原始文件如果需要,您可以更改%%~NXA.zip%%~NA.zip在新的zip文件中不包含原始文件扩展名。

您还应该确保创建目标目录(如果尚不存在),以便归档命令在循环中按预期方式工作,因此我将其添加到脚本逻辑中,并且还将源目录和目标目录设置为变量。

我还通过FOR循环使用了批量替换来处理各个zip和文件名。从有关该主题的一些学习资料中查看更多资源FOR /?)。


脚本示例

@ECHO OFF
SET hr=%time:~0,2%
IF %hr% lss 10 SET hr=0%hr:~1,1%

SET TODAY=%date:~4,2%-%date:~7,2%-%date:~10,4%-%hr%%time:~3,2%%time:~6,2%%time:~9,2%

SET SrcDir=C:\zipush
SET DestDir=C:\new-drive-%TODAY%
IF NOT EXIST "%DestDir%" MD "%DestDir%"

ECHO.

ECHO Compressing files and folders in C:\zipush drive and moving to C:\new
ECHO.

ECHO Compressing files and folders in C:\zipush drive and moving to C:\new and then delete from C:\zipush
ECHO.
FOR %%A IN ("%SrcDir%\*.*") DO 7za a -tzip "%DestDir%\%%~NXA.zip" "%%~A" -mx5 && DEL /Q /F "%%~A"
ECHO.
PAUSE

更多资源

  • 为了
  • 有条件的执行
  • 医学博士

  • FOR /? 从命令提示符

    In addition, substitution of FOR variable references has been enhanced.
    You can now use the following optional syntax:
    
    %~I         - expands %I removing any surrounding quotes (")
    %~fI        - expands %I to a fully qualified path name
    %~dI        - expands %I to a drive letter only
    %~pI        - expands %I to a path only
    %~nI        - expands %I to a file name only
    %~xI        - expands %I to a file extension only
    %~sI        - expanded path contains short names only
    %~aI        - expands %I to file attributes of file
    %~tI        - expands %I to date/time of file
    %~zI        - expands %I to size of file
    %~$PATH:I   - searches the directories listed in the PATH
                   environment variable and expands %I to the
                   fully qualified name of the first one found.
                   If the environment variable name is not
                   defined or the file is not found by the
                   search, then this modifier expands to the
                   empty string
    

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用7-zip批量解压缩文件夹中的所有文件?

使用python解压缩文件夹和子文件夹中的zip文件

使用Gulp Zip压缩文件夹中的所有文件

如何批量压缩文件夹?

如何自动在Thunderbird中压缩文件夹?

如何压缩多个文件夹,每个文件夹都压缩到自己的zip存档中?

使用tar压缩文件夹中的特定文件夹(目录)

从ASP页面使用7-Zip压缩文件夹

如何将文件夹中的多个文件压缩到一个压缩文件夹中?

如何使用zip4j和outputstream压缩文件夹和子文件夹

如何压缩文件夹内容并将具有Foldername的zip文件保存在同一文件夹中

在Windows中,如何递归压缩文件夹,而只能压缩选择性文件?

如何使用Clojure递归压缩文件夹

如何使用zipfile python压缩文件夹

如何使用Java压缩文件夹本身

如何将所有文件(文件夹中每个子文件夹中的最新文件除外)压缩到每个子文件夹一个ZIP文件中?

如何在没有根文件夹的Mac中压缩文件

如何从嵌套文件夹中解压缩文件?

如何压缩文件名中包含今天日期的文件夹?

如何在不创建子文件夹的情况下将多个文件夹压缩到压缩文件夹中?

在不同文件夹中压缩文件时如何保持文件夹完整性

解压缩压缩文件时,如何仅获取目标文件夹中的完全解压缩文件?

使用动态名称压缩文件夹的内容

Bash命令使用密码压缩文件夹

使用 Powershell 脚本压缩文件夹

如何使用 Powershell Compress-Archive 仅压缩文件夹中的 pdf?

如何仅将压缩文件夹中的特定文件夹提取到给定目录?

使用SevenZip提取zip文件中的压缩文件

如何使用 Java 压缩和解压缩文件/文件夹