使用bat删除子文件夹内的文件

使用bat删除子文件夹内的文件

我知道要删除的文件所在的子文件夹的名称。子文件夹的名称是“My Subfolder”,我想删除子文件夹中的文件是“The-Bad File.txt”。我在“D”盘。“My Subfolder”位于D:\Folder-2\; D:\Folder-4\; D:\Folder-54\;D:\Folder-543\等 等 内(我不知道“My Subfolder”所在的实际文件夹名称)。我只想搜索这些文件夹,然后使用 .bat 文件删除“Bad File.txt”。

我不想要这个:-

@echo off
del /s "Bad File.txt"

这将搜索整个驱动​​器,这将花费一些时间。更确切地说,我想要的是,首先搜索“我的子文件夹”。然后在“我的子文件夹”中删除“Bad File.txt”

答案1

如果您绝对确定只有一个“我的子文件夹”实例,那么:

@echo off
Set StartFolder=D:\Path\To\A\Folder
for /f "tokens=*" %%a in ('DIR /s /b /ad "%StartFolder%"') Do del "%%a\Bad File.txt"

只需将第二行“StartFolder”的路径更改为您想要开始查找的文件夹即可。

虽然我真的不认为搜索文件夹会减少所需的时间(至少不会减少很多)。

答案2

如果您使用 TCMD 命令行,那就非常简单了:

global if exist "Bad File.txt" del "Bad File.txt"

这比 快得多del /s。我估计对于有几千个文件夹的硬盘来说,速度会快 100 倍。

global /q如果每个目录名称的屏幕绘制都会减慢速度,则可能需要使用。我知道这对我来说是这样的,因为我的卡正在驱动 3 个 1080p 显示器。

相关内容