求批处理命令,批量删除指定文本内含有指定字符串的文件

例如:我桌面有一个文本文档 订单号.txt 里面是每行一个订单号的纯数字,在桌面有一个文件夹,文件夹里包含了以这些数字命名的文件(文件名里并非只有这些数字,还可能有其他字符),现想要实现使用批处理命令,删除这个文件夹里那些在订单号.txt内容里包含这些以这些数字命名的文件,求此命令

不清楚你的实际文件/情况,仅以问题中的样例/说明为据
复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟txt文件放一起运行

@echo off
rem 根据一个txt文本文件里列出的文件名(不含扩展名/后缀名)删除指定目录/文件夹里的文件
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
set "folder=C:\Users\Administrator\Desktop\文件夹"
set "txtfile=订单号.txt"
if not exist "%folder%" (echo;"%folder%" not found&goto end)
for /f "delims=" %%a in ('type "%txtfile%"') do (
    for /f "delims=" %%b in ('dir /a-d/b "%folder%\*%%a*.*" 2^>nul') do (
        echo;"%folder%\%%~nxb"
        del /a /f /a "%folder%\%%~nxb"
    )
)
:end
echo;%#% +%$%%$%/%@% %z%
pause
exit

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-06-02
@echo off & title 批量删除指定文件 By 依梦琴瑶
cd /d "%~dp0"

::设置文件夹路径
set FolderDir=Test

::设置列表文件
set List=订单号.txt

for /f "usebackq delims=" %%a in ("%List%") do if exist "%FolderDir%\*%%~a*" del /f /q "%FolderDir%\*%%~a*"
pause

保存为bat后缀名的脚本文件,和订单号.txt放在一起,代码中的文件夹路径请自行修改

追问

只需要修改这个Test为文件夹的路径就行了么

追答

是的

本回答被提问者和网友采纳
相似回答