我参与批处理脚本的工作。我需要做的事情 1.i想在特定目录中找到像“name”这样的文件夹 例如: C:\测试\用户名 C:\测试\ B \名称 C:\测试\ n \ C \名称 2.在名称文件夹中,需要删除所有超过90天的子文件夹和文件。
我现在改变了我的问题,请给我一个想法...
答案 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
以实际删除文件。
如果需要,del
和for
命令可以与&
级联。为清晰起见,for
分布在一条线上。