批量从文件中删除文件夹.txt



我有一个临时文件夹,文件被加载到其中,然后系统地清除。 清除文件的工作失败,现在我有许多目录/文件需要手动删除。 我删除了irs.txt其中包含我需要删除的所有文件夹的名称。 我已经生成了以下内容来删除文件和文件夹,但是路径并不总是相同的:

FOR /F %%i IN (C:dirlist.txt) DO echo y| del "C:Temp Files*" & rmdir /s /q "C:Temp Files" %%i

问题是当临时文件加载到它们形成自己的子文件夹时,所以我有以下结构:

C:Temp Files101folder1
C:Temp Files101folder2
C:Temp Files103folder4
C:Temp Files455folder3

已删除IR.txt包含文件夹名称(文件夹1,文件夹2等)

我的脚本失败,因为它搜索"C:\Temp Files\folder1">

如何让脚本找到"folder1"并将其删除,而不管子文件夹编号(101、103 等)如何?

@ECHO OFF
SETLOCAL
FOR /d  %%a IN ("c:temp*") DO (
FOR /f "delims=" %%s IN (q48890405.txt) DO (
IF EXIST "%%a%%s." ECHO RD /S /Q "%%a%%s"
)
)
GOTO :EOF

您需要更改目录名以适合您的情况。

我使用了一个名为q48890405.txt的文件,其中包含一些虚拟数据进行测试。

所需的 RD 命令仅用于测试目的ECHO验证命令正确后,将ECHO RD更改为RD以实际删除目录。

这应该依次将子目录名称分配给%%a,然后对于找到的每个子目录,将文件中的名称读入%%s。然后查看名为%%a%%s的目录是否存在,如果存在,请将其删除。

请注意,您的del "C:Temp Files*"只会一遍又一遍地删除"C:Temp Files"中的所有文件。它真的只需要做一次(如果这是你打算做的)。

删除目录会释放它包含的所有文件,前提是没有文件以某种方式(只读或 UAC )受到保护。

最新更新