使用TXT列表删除具有不同扩展名的多个文件

时间:2016-10-10 13:46:30

标签: batch-file cmd del

我需要从已经具有扩展类型的列表中删除具有相同名称但扩展名不同的多个文件。

我有一个批处理程序来查找文件中的字符串并生成结果文本

    @echo off
findstr /m "1090 FF" *.info > results.txt
if %errorlevel%==0 (
echo Found! logged files into results.txt
) else (
echo No matches found
)

这将创建扩展名为.info的文件列表。然后我需要获取该列表并删除所有文件列表的文件,但我需要删除所有兄弟文件。

example:
12345.info (in my list to del)
12345.cpr (need to del)
12345.emf (need to del)
12345.obj (need to del)
12345.timb (need to del)

我尝试过使用它,但它只删除了.info文件扩展名:

@echo off
REM Delete files/folders specified in a newline delimited txt file list. 

set "default_list_path=C:\Users\%USERNAME%\Desktop\SAD_FF bat\results.txt"

if not "%~2"=="" echo Error: unexpected arguments& exit /b
if not "%~1"=="" ( set "list=%1" ) else (
    set "list=%DEFAULT_LIST_PATH%"
)

if not exist "%LIST:"=%" echo Error: list could not be found& exit /b

set /a delete_counter=0
for /f "delims=" %%I in ('type "%LIST:"=%"') do (
    if exist "%%~fI" (
        set /a delete_counter+=1
        if exist "%%~fI"\* (
            rd /s /q "%%~fI"
        ) else (
            del /q "%%~fI.*"
        )
    ) else (
        echo No such path "%%~I".
    )
)

echo.& echo %DELETE_COUNTER% files or folders were deleted.

我可以将后面的代码扩充到del所有的兄弟文件吗?欢迎所有建议!!

1 个答案:

答案 0 :(得分:1)

尝试更改

        del /q "%%~fI.*"

        echo del /q "%%~dpnI.*"

为了测试目的,所需的DEL命令仅为ECHO在您确认命令正确后,将ECHO DEL更改为DEL以实际删除文件。