Lep*_*tor 4 7zip batch-file winzip
请参阅下面的更新答案
Windows批处理文件.
我非常喜欢7-Zip并且效果很好,但是像WinZip的移动和时间戳文件一样.但是,WinZip(命令行界面)对文件大小和存档中的文件数量有限制.
谷歌搜索我们确实看到有一个人,他确实采取了7-zip的代码并重新编译了代码以使用-m(移动)开关.但是,在我们的生产环境中使用7-zip开发人员以外的第三方感到不舒服.
另外,我见过 - http://alternativeto.net/software/7-zip/
我已编码:IF NOT ERRORLEVEL 1(在Zip进程之后)删除文件,但如果有多个相同的文件名结构,则这不安全.
以下是一些代码示例:7zip:
D:\scripts\7za -tzip -y a D\zips\20140116_someclient_%computername%@%location%.zip D:\logs\apache_log.2014-01-16* >nul >>%logfile%
IF NOT ERRORLEVEL 1 ECHO Y|DEL D:\logs\apache_log.2014-01-16*
Run Code Online (Sandbox Code Playgroud)
apache_log.2014-01-16可能是:
apache_log.2014-01-16.1
apache_log.2014-01-16.2
apache_log.2014-01-16.3
Run Code Online (Sandbox Code Playgroud)
等等
WinZip的
c:\progra~1\WinZip\Wzzip.exe -T -ex -m D\zips\20140116_someclient_%computername%@%location%.zip D:\logs\some_file.2014-01-16* >nul >>%logfile%
Run Code Online (Sandbox Code Playgroud)
我想从软件需求的角度来看,我想在7Zip中拥有WinZip的一些功能.我喜欢7Zip,因为它有能力使用大型档案.我喜欢PeaZip,而且我之前使用的是PowerArchiver.我遇到的问题是我正在使用Apache Tomcat for Windows,我们必须存档每小时超过200-300 MB的日志,并且需要保持服务器不受旧日志的影响.
希望这更有意义.
更新:
相信我已经回答了我自己的问题..
FOR /F %%F IN ('dir /B "D:\serverlogs\server.log.2014-01-19*"') DO (
D:\work\scripts\7za.exe –tzip –y a "D:\ziplogs\201401109_COMPANY_SERVERNAME@DATACENTER.ZIP" >> D:\WORK\SCRIPTS\LOGS\LOG_20140120.LOG && DEL "D:\serverlogs\%%F"
)
Run Code Online (Sandbox Code Playgroud)
这现在运作良好.