batch-file - 制作批处理文件以将文件夹的内容压缩到单独的 zip 中
问题描述
我需要一个批处理文件将当前目录的内容压缩成单独的 zip 文件(每个文件都有自己的 zip 文件)。我有兴趣了解有关制作批处理文件的更多信息,以便帮助分解脚本的含义。下面是在当前目录中压缩子目录的批处理,我打算尝试编辑它以压缩目录的单个文件,但我真的不知道如何,我找不到参考表或任何东西。因此,如果您有类似内容的链接,那就太好了。
for /d %%X in (*) do "C:\Program Files\7-Zip\7z.exe" a "%%X.zip" "%%X\"
我想我在这里理解的是:'for /d'将通过目录循环批处理'in(*)'指定当前目录'执行“可执行位置”'指定进程'a“%%X.zip "' 指定文件类型?我真的不明白什么是“%%X”
先感谢您。
解决方案
如果您想将压缩子文件夹的内容更改为压缩文件,只需删除/d
,然后它将查找文件而不是目录。
for %%X in (*) do "C:\Program Files\7-Zip\7z.exe" a "%%X.zip" "%%X"
回答你关于什么%%X
是的问题:这就是变量。当您使用 for 进入循环时,您需要一些变量来表示您正在循环的内容。
当您通过循环时,%%X
代表您正在处理的任何文件。因此,如果第一个文件是File1.txt
,那么第一次通过循环,%%X
将等于File1.txt
。
所以命令是:"C:\Program Files\7-Zip\7z.exe" a "File1.txt.zip" "File1.txt"
如果我记得 7-zip 参数,你说的是添加File.txt
到一个名为 .zip 的 zip 文件File1.txt.zip
。下一次循环,%%X
代表下一个文件名。
顺便说一句,如果您在 CLI 中运行它(本质上是“命令提示符”),那么您将使用单个 %,而对于批处理文件,您必须使用两个 (%%)。
推荐阅读
- c# - 具有相同结构的命名空间混淆
- c# - 实例化 IntegrationServices 对象时未找到方法错误
- postgresql - 从 Postgresql 中的大表中删除重复项
- flutter - 当我点击它时隐藏高程按钮阴影
- node.js - 如何查找名称是否在 node.js 的 mongodb 中?
- terraform - 如何将 API 令牌作为 Terraform 秘密资源提供给 GitLab Terraform 提供者?
- javascript - 如何生成一组图标名称以用作 Vuetify v-autocomplete 语句中的选项?
- scala - sbt migration from 0.13.0 to 1.3.0
- c++ - 当 vt == VT_NULL 不起作用时如何检查 NULL 变量值?
- python - 如何在python中使用类更新gui