从子文件夹中删除文件名

时间:2013-06-26 17:52:43

标签: windows for-loop batch-file cmd directory

我正在尝试使用批处理文件删除子目录下所有子目录中给定名称的所有文件。我基本上有一个文件夹,其中包含数千个GUID名称的文件夹,这些文件夹需要定期删除每个文件,我不想继续进行搜索和删除。

典型的子文件夹看起来像:

C:\folder\{000D5D3E-A54D-4B0B-8B03-95AC591CB20A}\
C:\folder\{00DBFD07-3218-4DC2-83CA-27A7D14D782C}\
C:\folder\{00A08715-0811-6142-50AE-82A332EA3A5F}\
...etc

我要删除:

C:\folder\{000D5D3E-A54D-4B0B-8B03-95AC591CB20A}\log.xml
C:\folder\{90DBFD07-3218-4DC2-83CA-27A7D14D782C}\log.xml
C:\folder\{A0A08715-0811-6142-50AE-82A332EA3A5F}\log.xml
...etc

这就是我到目前为止......但是我无法让它工作......有什么建议吗?

SET _DIR_="C:\FOLDER"
SET _PATTERN_="C:\folder\{*}\log.xml"
C:
CD %_DIR_%
for /r /%f in (%_PATTERN_%) do ECHO "%f"

感谢。请仅在批处理文件中回复以此方式执行此操作=)

3 个答案:

答案 0 :(得分:4)

用安全带爱的循环:

for /d /r "C:\folder" %%i in (*) do if exist "%%~fi\log.xml" echo del "%%~fi\log.xml"

答案 1 :(得分:3)

* 首先在测试中测试 - 如果您的打字类似于矿山,则非常危险

(抱歉大喊 - 但你确实需要非常小心这个......

尝试此命令 FIRST

DIR /S c:\FOLDER\log.xml

如果这会产生您要删除的文件列表,那么

DEL /S c:\FOLDER\log.xml

将删除它们。

答案 2 :(得分:1)

for /f %%i in ('dir {*} /s /b') do cd %%i&&del log.xml

在命令行使用只需将%% i替换为%i即可。 这应该从任何以'{'开头并以'}'

开头的文件夹名称中删除log.xml

首先导航到正确的目录

相关问题