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 当前日期与其他路径目录上的源文件夹的主要内容,如果未能解决你的问题,请参考以下文章

如何使用c#从其他形式的菜单项中显示月历上的当前日期

linux常用文件操作命令

用一个.bat文件批处理压缩文件,将文件夹下的压缩文件遍历,解压缩到当前文件夹,如何写?

将修改后的文件日期与批处理文件中的当前日期进行比较

工作中常用的Linux命令

批处理