所以我需要一个 Windows 脚本,我可以告诉它一个目录,它将解析所有子目录,而在每个子目录中,将归档具有特定文件扩展名的所有文件并将其保存在同一个子目录中,然后转到下一个。
解决此问题的最佳方法是什么? Perl 自动化脚本、AutoIt?
你们有什么示例代码可以给我吗?
最佳答案
Perl 比批处理脚本更强大,但由于 Perl 未包含在 Windows 中,因此对于诸如此类的任务来说似乎有点过分了。这应该例如工作:
FOR /R C:\hello\ %%G IN (*.txt) DO "c:\Program Files\7-Zip\7z.exe" a %%G.zip %%G && del %%G
请注意,您不能直接在提示中执行此操作,您必须将其保存为 .bat 文件。当然也可以允许用户使用命令行指定路径和扩展名,如下所示:
FOR /R %1 %%G IN (%2) DO "c:\Program Files\7-Zip\7z.exe" a %%G.zip %%G && del %%G
可在此处找到有关 FOR 和其他 Windows 命令行命令的更多信息:http://ss64.com/nt/
这将运行:
test.bat C:\Hello\ *.txt
编辑:这显然需要您安装 7-Zip,但如果您想使用其他一些 zipper ,在哪里更改代码是非常明显的。还请记住,在试验此类脚本时始终要格外小心。一个小错误可能会导致它删除大量文件,因此您应该始终在文件系统的副本上对其进行测试,直到您完全确定它可以正常工作。
关于windows - 归档具有特定扩展名的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2745413/