如果所有文件都超过3天,则批处理文件以删除目录中的子文件夹

用户名

我需要完成我的批处理脚本。我的路径为C:\ Users \ Mahmo03S \ Shaban。在那条路径中,有几个子文件夹。安思 在子文件夹Ansys中,甚至还有更多子文件夹=它是一个文件夹树。如果文件夹和子文件夹中的每个文件都超过3天,则我的批处理脚本需要删除Ansys文件夹。如果在过去3天内仅修改了Ansyn中的一个文件,则Ansys不会发生任何事情。我尝试提出一个可靠的解决方案,但是:批处理文件删除了Ansys目录中的子子文件夹,因为自3天以来未修改该子子文件夹中的文件。

我有3个批处理文件正在执行任务。

脚本

@echo off
setlocal enableextensions
pushd C:\Users\Mahmo03S\Desktop\Shaban

set /p check="Select a date:" 
Rem When prompted with above line type the date 3 days ago.

forfiles /c "cmd /c (IF @isdir==TRUE call C:\Users\Mahmo03S\Desktop\Search.bat "@path" "%check%")"

popd

Search.bat

set del=TRUE
forfiles /p %1 /d -%2 /s /m * /c "cmd /c (IF @isdir ==TRUE call C:\Users\Mahmo03S\Desktop\DeleteFolders.bat "@path" "%check%" "%del%")"

DeleteFolders.bat

set del=FALSE
if %del%==FALSE (rmdir /S /Q %1)

问题是:我在文件夹Ansys中有一个子文件夹(例如,hello)。在hello文件夹中,每个文件都超过3天。该脚本将删除它不应删除的hello文件夹。仅当文件夹中的每个文件都超过3天时,才应删除Ansys。如果在过去3天中仅在Ansys文件夹中修改了一个文件,则不应删除Ansys文件夹中的任何内容。

我制作了批处理文件,因此如果每个文件都超过3天,它将删除Ansys文件夹。但是,不应仅仅因为子文件夹中的文件早于3天而删除该子文件夹。

我怎样才能做到这一点?

德本纳姆

可以使工作解决方案变得简单得多;)

您可以检测到FORFILES是否打印了任何结果,如果没有打印任何结果,则采取措施。

使用FOR / D迭代直接子文件夹。对于每个文件夹,运行FORFILES以查找截止日期或更晚的文件。如果您不必担心忽略文件夹,则只需根据FORFILES返回代码执行操作。但是,您不希望基于新的但空的文件夹得到误报。您可以使用FINDSTR检测FORFILES是否打印了任何文件名,如果没有打印,则删除文件夹树。如果FORFILES找到新文件夹,它仍然会打印一个空行,因此您必须使用搜索字符,.而不是使用搜索行"^"

@echo off
setlocal disableDelayedExpansion
set "root=C:\Users\Mahmo03S\Shaban"
set /p "cutoff=Enter a cutoff date (mm/dd/yyyy): "
for /d %%F in ("%root%\*") do (
  2>nul forfiles /p "%%F" /d %cutoff% /s /c "cmd /c if @isdir==FALSE echo @file"
) | >nul 2>nul findstr . || rd /s /q "%%F"

StackOverflow和其他地方发布了多种方法,它们显示了如何批量执行日期算术。我偏爱名为getTimestamp.bat混合JScript / batch实用程序它是纯脚本,可​​从XP开始在任何现代Windows机器上运行-无需第三方可执行文件。它充满了各种选择,使您几乎可以进行您想像中的任何日期计算。

假设getTimestamp.bat位于您当前的目录中,或者更好的是位于PATH中的某个位置,那么可以使用以下行来计算截止日期,而不用提示输入日期:

call gettimestamp -OD -3 -F {mm}/{dd}/{yyyy} -R cutoff

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

批处理文件,删除目录中除最新文件夹外的所有文件夹

来自分类Dev

如何清除而不删除所有子文件夹中的所有文件(批处理文件除外)?

来自分类Dev

Windows批处理文件:转换子文件夹中的所有文件

来自分类Dev

批处理文件以在文件夹中创建新的子文件夹,将文件移动到目录中所有文件夹的新创建的子文件夹

来自分类Dev

在批处理文件的所有子文件夹中运行命令

来自分类Dev

在所有子文件夹中运行批处理文件

来自分类Dev

通过批处理文件从子文件夹中删除所有内容

来自分类Dev

从超过 X 天的 S3 存储桶中删除文件夹、子文件夹和所有文件

来自分类Dev

使用批处理文件压缩文件夹中的所有文件和子目录

来自分类Dev

批处理文件将所有子文件夹文件上移然后删除空的子文件夹?

来自分类Dev

批处理文件,用于获取文件夹中的所有文件名

来自分类Dev

从Windows的批处理文件中删除特定文件夹(如果为空)?

来自分类Dev

批处理文件删除文件夹,但保留一定的子文件夹?

来自分类Dev

如何使用批处理文件向当前文件夹和子文件夹中的所有文件添加前缀

来自分类Dev

如何使用批处理文件删除2个特定文件夹中的所有内容?

来自分类Dev

批处理文件,用于删除/删除xx天前的文件夹

来自分类Dev

用于删除/删除 xx 天以前的文件夹的批处理文件

来自分类Dev

调用文件夹中的所有批处理文件

来自分类Dev

批处理文件以执行文件夹中的所有.exe

来自分类Dev

批处理文件以启动XP开始文件夹中的所有程序

来自分类Dev

删除 /tmp 中超过一天的所有文件和文件夹

来自分类Dev

删除文件夹及其子文件夹中超过7天的文件

来自分类Dev

批处理脚本-如何删除多个目录下的子文件夹(文件/文件夹)

来自分类Dev

批处理文件以在文件目录中创建所选文件的文件夹

来自分类Dev

批处理文件可在子文件夹中找到.ts文件,然后将其移动到目录中?

来自分类Dev

使用批处理删除文件夹中除列表中的文件以外的所有文件

来自分类Dev

使用批处理删除文件夹中除列表中的文件以外的所有文件

来自分类Dev

使用批处理文件为所有子文件夹中的所有文件名添加前缀

来自分类Dev

批处理命令从一个文件夹中删除除一个文件外的所有内容(子文件夹和文件)

Related 相关文章

  1. 1

    批处理文件,删除目录中除最新文件夹外的所有文件夹

  2. 2

    如何清除而不删除所有子文件夹中的所有文件(批处理文件除外)?

  3. 3

    Windows批处理文件:转换子文件夹中的所有文件

  4. 4

    批处理文件以在文件夹中创建新的子文件夹,将文件移动到目录中所有文件夹的新创建的子文件夹

  5. 5

    在批处理文件的所有子文件夹中运行命令

  6. 6

    在所有子文件夹中运行批处理文件

  7. 7

    通过批处理文件从子文件夹中删除所有内容

  8. 8

    从超过 X 天的 S3 存储桶中删除文件夹、子文件夹和所有文件

  9. 9

    使用批处理文件压缩文件夹中的所有文件和子目录

  10. 10

    批处理文件将所有子文件夹文件上移然后删除空的子文件夹?

  11. 11

    批处理文件,用于获取文件夹中的所有文件名

  12. 12

    从Windows的批处理文件中删除特定文件夹(如果为空)?

  13. 13

    批处理文件删除文件夹,但保留一定的子文件夹?

  14. 14

    如何使用批处理文件向当前文件夹和子文件夹中的所有文件添加前缀

  15. 15

    如何使用批处理文件删除2个特定文件夹中的所有内容?

  16. 16

    批处理文件,用于删除/删除xx天前的文件夹

  17. 17

    用于删除/删除 xx 天以前的文件夹的批处理文件

  18. 18

    调用文件夹中的所有批处理文件

  19. 19

    批处理文件以执行文件夹中的所有.exe

  20. 20

    批处理文件以启动XP开始文件夹中的所有程序

  21. 21

    删除 /tmp 中超过一天的所有文件和文件夹

  22. 22

    删除文件夹及其子文件夹中超过7天的文件

  23. 23

    批处理脚本-如何删除多个目录下的子文件夹(文件/文件夹)

  24. 24

    批处理文件以在文件目录中创建所选文件的文件夹

  25. 25

    批处理文件可在子文件夹中找到.ts文件,然后将其移动到目录中?

  26. 26

    使用批处理删除文件夹中除列表中的文件以外的所有文件

  27. 27

    使用批处理删除文件夹中除列表中的文件以外的所有文件

  28. 28

    使用批处理文件为所有子文件夹中的所有文件名添加前缀

  29. 29

    批处理命令从一个文件夹中删除除一个文件外的所有内容(子文件夹和文件)

热门标签

归档