批处理文件按年龄删除文件

批处理文件按年龄删除文件

我有一个目录,设置为 \server\\year\month\day\x, .../y 和 .../z。我需要一个批处理文件,根据保留期限(例如 60 天)删除每个用户目录中每个月日和年份的 x 文件夹中的视频。然后根据不同的期限(例如 730 天)删除 Y 中的文件

我有forfiles -p "\\server\username\year\month\day\x" -s -m *.* -d -60 -c "cmd /c del @path",但是我不确定如何在路径中循环搜索网络文件夹中的所有子目录以仅查找 X 文件夹。

有没有办法不使用创建日期属性来做到这一点,以防万一拍摄视频时相机的日期/时间不正确。提前感谢帮助!(如果有人知道我可以研究的语法,我将不胜感激)

答案1

forfiles据我所知,不接受 UNC 路径,您需要将该网络地址与驱动器号关联(例如,“S:”作为服务器)

net use S: \\server\username\year\month\day\ /PERSISTENT:YES

然后测试您的第一个命令,使用echo而不是del@JosefZ 在他的评论中所建议的那样:

forfiles -p S:\x -s -d -60 -c "cmd /c if @isdir==FALSE echo @path"

您不需要通用掩码*.*,这是隐式的。使用-m开关仅用于过滤特定文件类别(例如*.mp4)。

一旦您对结果感到满意,就可以去做:

forfiles -p S:\x -s -d -60 -c "cmd /c if @isdir==FALSE del /f @path"

forfiles -p S:\y -s -d -730 -c "cmd /c if @isdir==FALSE del /f @path"

相关内容