我想知道是否可以创建一个命令行来执行以下操作 - 如果目录存在,则仅将内容压缩到一个 ZIP 文件中。如果目录有子目录,则仅将内容压缩到另一个 ZIP 文件中。
例子:
C:\Directory\sample.txt ZIP only sample.txt
C:\Directory\Directory1\sample1.txt ZIP only sample1.txt
C:\Directory\Directory1\Directory2\sample2.txt ZIP only sample2.txt
因此它会在 C:\Directory 及其子目录中创建 3 个 zip 文件。
我不知道子目录的名称,因此我是否也可以分配某种变量来表示如果有目录或子目录,那么C:\Directory
从 ZIP 上方启动?
谢谢你,
保罗
答案1
将其放入批处理文件中:
REM Usage: ZipFilesRecursively.bat "C:\My Files"
for /R "%~f1" %%F in (*) do 7z a "%%~dpFfiles.zip" "%%F"
它压缩全部且仅全部在目录及其所有子目录files.zip
中创建要存档的文件。C:\My Files
答案2
如果您不知道目录列表,您可以使用命令循环遍历它们FOR
。
在 Windows 命令提示符中,键入FOR /?
以获取有关其语法和用法的信息。
我可能会用它将您关心的所有文件复制到新子目录中,然后将其压缩。但是使用帮助文件,您应该能够弄清楚需要做什么。
答案3
这可能会帮助你:
Dir /A:D /B
- 显示目录中的所有子目录
Dir /A:-D /B
- 仅显示目录中包含的文件
结果Dir /A:D /B
可用于检查目录是否包含子目录。