我必须为以下场景编写Windows批处理脚本:
我在.txt格式的文件夹D:\Test
中存在日志文件。我有另一个名为D:\Test\archive
的文件夹。
我必须将超过30天的文件移动到存档文件夹D:\Test\archive
,然后我必须使用 WinRAR D:\Test\archiv中存在的所有文件存档到单个zip文件中>
我的zip文件格式应为ARCHIVE_SYSDATE
。
答案 0 :(得分:1)
无需将超过30天的文件移动到子文件夹进行存档。 WinRAR 具有内置选项,可将超过x天/小时/分钟的文件直接移动到存档文件中。
启动 WinRAR ,点击帮助主题上的菜单帮助,然后选择标签目录。列表项命令行模式包含主页命令行语法以及子项命令和开关包含指向所有命令和所有开关的字母列表的链接。
从字母命令列表,您的任务最有用的命令是:
m 将文件和文件夹移至存档
从按字母顺序切换列表,您的任务最有用的开关是:
-ag [format] 使用当前日期和时间生成存档名称 -cfg - 忽略默认配置文件和环境变量
-ep1 从名称中排除基本文件夹 -ibck 在后台运行WinRAR
-m< n> 设置压缩方法
-r - 禁用递归
-to< time> 处理早于指定时间的文件
-y 假设所有查询均为
将 WinRAR 的帮助中的所有信息放在一起使用的命令是:
"%ProgramFiles%\WinRAR\WinRAR.exe" m -agYYYY-MM-DD -cfg- -ep1 -ibck -m5 -r- -to30d -y D:\Test\archive\ARCHIVE_.zip D:\Test\*
注意:切换-y
也会禁用所有错误消息的输出。
答案 1 :(得分:0)
这应该让你开始。
forfiles /d -30 /c "cmd /c if not @isdir==TRUE echo @file @fdate"
WinRAR不是Windows的一部分。阅读它的帮助。
将所需命令(copy
)替换为echo
。
请参阅forfiles /?
和copy /?
。如果您指定日期而不是天数,XCopy
也可以在一行中完成。
使用Windows Shell Objects查看我之前的zip压缩答案。 using Windows send-to for creating a one step send to>zip>to email