批处理脚本 - 清理脚本

时间:2016-01-28 07:35:33

标签: windows batch-file

我参与批处理脚本的工作。我需要做的事情 1.i想在特定目录中找到像“name”这样的文件夹 例如: C:\测试\用户名 C:\测试\ B \名称 C:\测试\ n \ C \名称 2.在名称文件夹中,需要删除所有超过90天的子文件夹和文件。

我现在改变了我的问题,请给我一个想法...

2 个答案:

答案 0 :(得分:0)

您缺少星号btnFLIGHT_INSERT2,因此文件夹集会扩展到*文件夹的所有子目录。此外,_delete构造似乎没有必要再考虑,因为/D /R已经负责递归删除目录

RD /S

但它不会删除FOR /D %%A IN ( folder_you_want_to_clean\* ) DO IF EXIST "%%A" RD /S /Q "%%A" 文件夹本身中的文件。使用folder_you_want_to_clean命令执行此操作 - DEL选项会禁止确认提示,就像使用/Q命令一样:

RD

具体示例:假设您要清理的文件夹为DEL /Q folder_you_want_to_clean\* 。然后就做:

C:\data\oldstuff

FOR /D %%A IN ( C:\data\oldstuff\* ) DO IF EXIST "%%A" RD /S /Q "%%A" 中包含的所有目录将会消失(当然,这些目录中的所有文件都会消失)。但C:\data\oldstuff中的任何文件本身仍然存在!所以要删除它们,请执行:

C:\data\oldstuff

答案 1 :(得分:0)

@ECHO OFF
SETLOCAL
SET "targetdir=U:\destdir"
ECHO(DEL "%targetdir%\*?*"
FOR /f "delims=" %%a IN (
  'dir /b /ad "%targetdir%\*" '
  ) DO (
 ECHO(RD /S /Q "%%~a"
)

GOTO :EOF

您需要更改targetdir的设置以适合您的具体情况。如果你愿意,它当然可以用文字代替。

所需的RD命令仅用于ECHO以用于测试目的。 在您确认命令正确后,将ECHO(RD更改为RD以实际删除目录。

为了测试目的,所需的DEL命令仅为ECHO在您确认命令正确后,将ECHO(DEL更改为DEL以实际删除文件。

如果需要,delfor命令可以与&级联。为清晰起见,for分布在一条线上。