我正在尝试制作一个脚本,该脚本将在过去7天内每天制作一个文件夹副本(在Windows中)。在第8天,我希望它采取最旧的副本并覆盖它,依此类推等等,所以在任何时候我都会有7天的“历史记录”文件夹。
现在我只是通过告诉每日bash脚本将文件夹复制到“/ home / whatever-date +%u”来完成以前在Linux中的操作。
日期+%u顺便输出星期几。 Mon为1,Tue为2,等等。
相比之下,DOS date命令完全被延迟。有一种简单的方法可以在DOS批处理文件中获取星期几(数值),还是应该放弃并用Java编写?
答案 0 :(得分:1)
@echo off
Echo.|Command /C Date>DOW
set /p today=<DOW
set DOW=%today:~16,3%
xcopy "C:\Source\*.*" "C:\Dest\%DOW%"
这将备份到名为Sun,Mon,Tue ... Sat的子文件夹中。您需要自己创建这些文件夹,或编辑脚本以创建它们。
编辑:对此的描述不佳。
答案 1 :(得分:1)
没有临时文件的Kris更好的变化
set DOW=%date:~16,3%<br>
xcopy "C:\Source\*.*" "C:\Dest\%DOW%"
答案 2 :(得分:0)
简短回答:不是我知道,不是你不能得到一周的那一天。如上所述,您最好使用Java。
答案很长:您可以看一下there开始处理给定圈数(一周/ 7天)的文件,然后使用 或调度程序服务每周日(在Windows机器上)运行它。
希望这有帮助。
编辑:我发现你想要每天运行这个并且在第8天有不同的行为。您始终可以在目录中保留一个标志(隐藏文件名为“______day”,包含迭代#),并在开始复印作业时进行检查。
如果是1到6,则增加内容,如果是7,则执行主副本并将1放入文件中。
这些方面的东西。
答案 3 :(得分:0)
DATE环境变量(%DATE%)返回星期几(MON,TUE,WED,...)。好像它已经足够好了。