4

我正在尝试使用批处理文件删除子目录下所有子目录中给定名称的所有文件。我基本上有一个文件夹,其中包含数千个具有 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"

谢谢。请只回复在批处理文件中执行此操作的方法 =)

4

3 回答 3

4

带安全带的爱心环:

for /d /r "C:\folder" %%i in (*) do if exist "%%~fi\log.xml" echo del "%%~fi\log.xml"
于 2013-06-26T18:09:24.557 回答
3

*首先在测试子树上测试这个 - 如果你的打字和我的一样糟糕,这是非常危险的

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

先试试这个命令

DIR /S c:\FOLDER\log.xml

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

DEL /S c:\FOLDER\log.xml

将删除它们。

于 2013-06-26T18:06:10.580 回答
1
for /f %%i in ('dir {*} /s /b') do cd %%i&&del log.xml

要在命令行中使用,只需将 %%i 替换为 %i。这应该从任何以“{”开头并以“}”结尾的文件夹名称中删除 log.xml

首先导航到正确的目录!

于 2013-06-26T20:00:59.120 回答