Board logo

标题: [已解决]如何批量同时删除扩展名为.xxx和.xx_的文件 [打印本页]

作者: suntb     时间: 2008-3-4 17:59    标题: [已解决]如何批量同时删除扩展名为.xxx和.xx_的文件

批处理中遇到一个问题 a.txt中含要处理的文件列表,扩展名为3个不固定字符,即格式为.xxx,如 2142.txt sdlf.exe f2w0.chm .......... 如何同时删除当前文件夹中文件名相同但扩展名分别为.xxx和.xx_的文件 即删除 2142.txt sdlf.exe f2w0.chm .......... 的同时还要删除 2142.tx_ sdlf.ex_ f2w0.ch_ .......... [ Last edited by suntb on 2008-3-5 at 01:16 PM ]

作者: pooronce     时间: 2008-3-4 18:08
for /f "tokens=1" %%i in (a.txt) do call :delp %%i goto :eof :delp set fname=%%i del %fname% del %fname:~0,-1%_

作者: suntb     时间: 2008-3-4 23:45
Originally posted by pooronce at 2008-3-4 18:08: for /f "tokens=1" %%i in (a.txt) do call :delp %%i goto :eof :delp set fname=%%i del %fname% del %fname:~0,-1%_
找不到 E:\%i 找不到 E:\%_

作者: fastslz     时间: 2008-3-5 00:01
@echo off
for /f "tokens=*" %%i in (a.txt) do call :delp "%%i"
pause&exit

:delp
set "fname=%~1"
del /q "%fname%"
del /q "%fname:~0,-1%_"
@echo off
setlocal enabledelayedexpansion
for /f "delims=*" %%i in (a.txt) do (
	set "fname=%%i"
	del /q "!fname!"
        del /q "!fname:~0,-1!_"
)
pause

作者: pooronce     时间: 2008-3-5 10:48
Originally posted by fastslz at 2008-3-5 12:01 AM: [code]@echo off for /f "tokens=*" %%i in (a.txt) do call :delp "%%i" pause&exit :delp set "fname=%~1" del /q "%fname%" del /q "%fname:~0,-1% ...
就是不想麻烦去延迟来着,那个词儿太长了 xD 居然调用参数还写的%%i ,脑子糊了我-__-##

作者: suntb     时间: 2008-3-5 12:33
谢谢 fastslz 和 pooronce 对变量延迟还不熟悉 麻烦你们了 代码测试通过