7zip 当前日期与其他路径目录上的源文件夹
Posted
技术标签:
【中文标题】7zip 当前日期与其他路径目录上的源文件夹【英文标题】:7zip current date with source folder on other path dir 【发布时间】:2017-04-18 01:43:56 【问题描述】:我正在尝试压缩仅使用 7z 修改的最新文件的文件,我已经查看了这个 https://superuser.com/questions/206817/7-zip-cmd-add-current-date-to-archive-and-include-only-the-last-modified-folder
还有这个
Use 7zip to include files with *current date* only
但它们不在我遇到问题的不同目录中,目前我的命令代码是这样的
@ECHO ON
SET SourceDir=H:\spiral\kmart\inbox
SET DestDir= C:\TCD
CD \TCD
7z.exe a -tzip C:\TCD\KMartInboxXML.zip-i!^C:\TCD\%DATE:~4,2%-%DATE:~7,2%-%DATE:~10,4%.xml "H:\spiral\kmart\inbox\*"
SET DestDir= C:\TCD
pause
EXIT
我得到了这个错误(见图)
error1
我知道我使用了错误的目录,因为错误的命令,实际上我也尝试过使用 forfiles 的不同命令行,我迷路了。非常感谢任何帮助。
编辑:
缺少解释。
【问题讨论】:
这似乎不是批处理文件问题,尽管我会更改您发布的每一行代码。但更多的是如何使用 7z 命令行。你想用-i
开关做什么?为什么不在它前面放一个空格?
@Compo 您好,感谢您的回复,对不起,我对批处理文件完全陌生。我试图按照链接 xD 上的命令行进行操作。不过我自己已经弄明白了。
【参考方案1】:
现在您已经找到了 7z.exe 命令的修复程序,请将脚本的其余部分更改为:
@ECHO OFF
SET "SourceDir=H:\spiral\kmart\inbox"
SET "ZipName=files_kmartinbox.zip"
SET "DestDir=C:\TCD"
SET "now=%date:~12,2%%date:~7,2%%date:~4,2%"
CD /D "%DestDir%"
7z.exe a "%ZipName%" -r "%SourceDir%\*%now%*"
另请注意,如果 7z.exe 不在 %PATH% 或 %DestDir% 中,您还必须提供它的完整路径或相对路径。
【讨论】:
【参考方案2】:从我朋友那里得到帮助,通过更改源文件夹上的 zip 命令来解决这个问题。 因为文件使用日期, 我使用变量来查找它们...格式名称文件是 290427-SHIPMENT-1704180803.xml
所以我把变量描述成这样
SET now=%date:~12,2%%date:~7,2%%date:~4,2%
结果:
170418
所以,任何文件名为 170418(即今天)的文件都将被压缩,将它们放在 zip 源文件夹中的变量中。
这是完整的代码
@ECHO ON
SET SourceDir=H:\spiral\kmart\inbox
SET DestDir= C:\TCD
SET now=%date:~12,2%%date:~7,2%%date:~4,2%
C:
CD \TCD
7z.exe a files_kmartinbox.zip -r "H:\spiral\kmart\inbox\*%now%*"
SET DestDir= C:\TCD
我希望这对有类似问题的人有所帮助。干杯。
【讨论】:
以上是关于7zip 当前日期与其他路径目录上的源文件夹的主要内容,如果未能解决你的问题,请参考以下文章