如何将文件夹标记为在脚本中处理?

时间:2015-07-20 14:51:04

标签: windows powershell shared-directory

脚本应处理Windows机器上文件夹中的文件,并在完成后将其标记为已完成,以便在下一轮处理中不将其取出。

我倾向于让脚本将文件夹重命名为其他名称,例如添加“_done”。

但是在Windows上,如果某个进程打开了文件夹或文件,则无法重命名文件夹。在此设置中,某些用户可能会打开该文件夹的可能性很小。

或者我可以在这个文件夹中写一个戳文件。

有更好的选择吗? 有没有办法强制重命名,特别是当它在共享驱动器或某些NAS驱动器上时?

1 个答案:

答案 0 :(得分:1)

您有几种选择:

  1. 在每个已处理的文件夹中放置某种令牌文件,并跳过包含所述文件的文件夹
  2. 跟踪处理的最后一个文件夹,只处理更新的文件夹(按时间戳或(由于它们按顺序编号),按顺序编号)
  3. 重命名文件夹
  4. 由于您已经声明其他用户可能已经打开了文件夹/文件,因此我们可以排除#3。

    在这种情况下,我赞成选项#1,即使你最终会得到额外的文件,如果有人需要尝试找出哪些文件夹已被处理,他们有一个快速,简单的方法用肉眼辨别,而不是试图在不同文件中找到一个计数器。它的编写代码也少一些,因此可以减少碎片。

    选项#2在这种情况下也很好(我根据具体情况使用了两者),但是我倾向于支持人类不需要关心或需要寻找的东西。常。