如何使用批处理脚本删除文件列表?

时间:2014-07-21 10:12:32

标签: batch-file

我是编写批处理文件的新手,我需要编写一个以删除文件列表。我需要批处理脚本首先找到文件(它们都位于同一驱动器中的不同文件夹中),然后删除所有文件。有没有办法可以编写批处理脚本来查找列表中的文件,然后自动删除它们?

道歉这个问题基本如何 - 我完全不确定如何完成这项任务!

1 个答案:

答案 0 :(得分:0)

@echo off
for /f "tokens=*" %%i in (list.txt) do (
 for /f "tokens=*" %%j in ('dir /s /b /a-d "c:\%%i"') do echo del "%%j"
)

如果输出满足您的话,请删除echo

获取列表中的每个文件名(%% i)

。获取此文件名的每个完整路径(%% j)(在磁盘中搜索)并删除它。

注意:这不是很快 - 在整个磁盘上搜索每个文件名都需要一段时间。

如果列表中有很多文件名,最好只构建一次完整的目标树并将其写入文件(dir /s /c /a-d >diskcontent.txt),使用该文件而不是每次搜索磁盘文件。

dir-parameters:/s在所有子目录中搜索,/b使用的格式为您提供完整路径,/a-d排除目录名; c:\从驱动器C:

的根目录开始

修改

如果您的list.txt包含空格(在文件名中或在给定路径中),您有以下几种选择:

pushd "C:\path to\my file"
for /f "tokens=*" %%i in (list.txt) do (

for /f "tokens=*" %%i in ('type "C:\path to\my file\list.txt"' ) do (

for /f "usebackq tokens=*" %%i in ("C:\path to\my file\list.txt") do (