7z 命令行具有非常快速的搜索功能,可以查找压缩文件夹中包含的文件。语法如下:
7z l mycompressedfile.7z fileiwant.txt -r
它也适用于文件夹中包含的多个压缩文件:
7z l *.7z fileiwant.txt -r
我的问题是如何将此功能应用于文件夹或磁盘中包含的所有文件,并递归所有子文件夹?例如,我想在磁盘 D 上的任何文件夹中包含的所有 zip 文件中搜索“fileiwant.txt”:
7z l [unknown option] d:\*.7z fileiwant.txt -r
除了在 PowerShell 中编写脚本之外,我找不到任何选项可以执行此操作,但它很复杂,我想要一行,容易记住。
非常感谢您的帮助
答案1
Windows 命令 Forfiles 可以让您对目录及其子目录中的文件运行命令。
满足您需求的语法如下:
forfiles /s /M *.7z /c "cmd /c 7z l @file fileiwant.txt -r"
Forfiles 遍历/M *.7z
当前目录及其子目录 () 中的所有 .7z 文件 () /s
。它将 7z 命令应用于每个文件 ( /c "cmd /c 7z l @file fileiwant.txt -r"
)
答案2
我在 7z 中找到了该选项,感谢 7-zip 的作者
语法如下:
7z l -an -air!d:\*.zip fileiwant.txt -r
它速度很快,并生成一份包含所有已检查档案的全球报告