批处理文件,用于在最近几天创建或修改的所有.docx文件上设置attrib + r

时间:2015-06-23 13:01:57

标签: batch-file

下午好,

我试图利用批处理脚本在访问数据库中更改字段时将给定文件夹中所有.docx文件的属性修改为+ R.

让脚本运行很容易。

我目前在* .docx上设置attrib + R - 这很好,因为文件夹中只有大约300个文件,但是这会非常非常迅速地增长。

我考虑过在另一个目录中创建新文件,然后使用robocopy在访问中的事件上移动它们,但事件必须是在创建文档的超链接时 - 文件无法移动在那个阶段。

有没有办法在有大量文件的目录上有效设置+ R,其中大部分已经是+ R?

通过检查修改/创建的日期不超过7天,或者检查已经有+ R的文件?

1 个答案:

答案 0 :(得分:0)

有几种方法可以通过forfilesdirrobocopy来解决这个问题,但是所有这些方法都有同样的问题:要确定需要处理哪些文件,所有这些都需要检查。

使用dir搜索所需文件,attrib更改其属性

pushd "x:\where\files\are" && (
    for /f "delims=" %%a in ('dir /b /a-r-d *.docx') attrib +r "%%a"
    popd
)

使用robocopy完成所有工作

pushd "x:\where\files\are" && (
    robocopy . . /is /XA:R /A+:R /COPY:A
    popd
)

在这两种情况下,只会处理没有只读属性的文件。 robocopy命令应该更快,因为只有一个可执行文件被启动而for / dir解决方案需要为每个找到的文件执行attrib,但robocopy仅直接包含在操作系统中自Vista(XP或2003可以从微软下载)