2016-10-10 58 views
0

我需要從已經具有擴展名類型的列表中刪除具有相同名稱但擴展名不同的多個文件。使用TXT列表刪除具有不同擴展名的多個文件

我有一個批處理程序要查找一個文件,字符串和做出成果文本

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

這將創建文件的擴展名爲。信息列表。然後,我需要採取該列表並刪除所有的文件列表的文件,但我需要刪除所有的兄弟文件。

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. 

可我後來的代碼擴充到德爾所有同級文件的?所有建議歡迎!

+0

如果有一種方法,我可以擴大第一個代碼只將文件的名稱減去擴展名,那麼我可以簡單地刪除所有名稱。我怎樣才能做到這一點? – CMDneubie

回答

1

嘗試改變

 del /q "%%~fI.*" 

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

所需DEL命令僅僅是ECHO編用於測試目的。 驗證命令是否正確後,將ECHO DEL更改爲DEL以實際刪除文件。

+0

感謝@Magoo!它的工作就像它應該!添加回聲有助於最初查看它正在查找的文件,並更改爲「%%〜dpni。*」,允許我刪除該擴展名。謝謝! – CMDneubie

相關問題