我正在尝试使用Robocopy (Win10)来维护一个7天的音乐目录,该目录将“老化”,而前8天的音乐将被删除。我每晚运行这个脚本。
我已经试过了,很简单:
robocopy c:\music c:\music7 /MIR /MAXAGE:7 /S初始拷贝的效果很好;但发生的情况是,8天前(或更早)的文件在第8天不会从music7目录中“清除”。我是不是在robocopy中遗漏了一个参数来剔除它们?
您还可以通过运行第一个命令来重现此过程:
robocopy c:\music c:\music7 /MIR /MAXAGE:7然后重新运行将MAXAGE更改为lower
robocopy c:\music c:\music7 /MIR /MAXAGE:2请注意,第3-7天的内容不会被删除。
发布于 2018-08-24 10:24:57
非常感谢你的评论。经过进一步的研究,我能够在批处理文件中使用ForFiles命令和Robocopy获得我在CMD中的状态。
与以下代码行类似:
ForFiles /p "c:\music7" /d -7 /c "cmd /c del @path /Q /S"
ForFiles /p "c:\music7" /d -7 /c "cmd /c rd @path /Q"
Robocopy c:\music c:\music7 /MIR /MAXAGE:6事情可能会变得有点奇怪,因为我可以让一些目录的日期似乎比它们下面的文件更早或更晚被修改,所以我不能只做一个破坏性的RD /S;robocopy会在运行时重新添加这些文件。
PS -对于那些好奇的人来说,这种方法让我可以有效地为Groove模拟基于时间的自动播放列表,而Groove本身并不像WMP或Zune那样支持它。我可以将7天的歌曲推送到OneDrive\Music中,并在播放器客户端中对其进行过滤,以播放我收藏的这一子集。现在我有了一个方法,任务调度程序自动清除超过7天的内容。再次感谢。
发布于 2018-08-23 09:49:58
在你的机器复制或一个单独的进程之后的powershell中
Get-ChildItem -file -path C:\music ($_.CreationTime -le (Get-Date).AddDays(-8)) | remove-itemhttps://stackoverflow.com/questions/51973403
复制相似问题