我知道要删除的文件所在的子文件夹的名称。子文件夹的名称是“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 显示器。