楼 主
[已解决]如何批量同时删除扩展名为.xxx和.xx_的文件
发表于 2008-03-04 17:59 · 中国 福建 福州 联通
高级用户
★★
积分 581
发帖 277
注册 2006-12-23 05:10
19年会员
UID 74328
性别 男
状态 离线
批处理中遇到一个问题
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 ]
第 2 楼
发表于 2008-03-04 18:08 · 中国 上海 黄浦区 电信
中级用户
★★
积分 484
发帖 250
注册 2007-06-05 23:33
19年会员
UID 90372
性别 男
状态 离线
for /f "tokens=1" %%i in (a.txt) do call :delp %%i
goto :eof
:delp
set fname=%%i
del %fname%
del %fname:~0,-1%_
第 3 楼
发表于 2008-03-04 23:45 · 中国 福建 福州 联通
高级用户
★★
积分 581
发帖 277
注册 2006-12-23 05:10
19年会员
UID 74328
性别 男
状态 离线
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:\%_
第 4 楼
发表于 2008-03-05 00:01 · 中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
@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
第 5 楼
发表于 2008-03-05 10:48 · 中国 上海 黄浦区 电信
中级用户
★★
积分 484
发帖 250
注册 2007-06-05 23:33
19年会员
UID 90372
性别 男
状态 离线
Originally posted by fastslz at 2008-3-5 12:01 AM:
@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 ,脑子糊了我-__-##
第 6 楼
发表于 2008-03-05 12:33 · 中国 福建 福州 联通
高级用户
★★
积分 581
发帖 277
注册 2006-12-23 05:10
19年会员
UID 74328
性别 男
状态 离线
谢谢 fastslz 和 pooronce
对变量延迟还不熟悉 麻烦你们了
代码测试通过
论坛跳转: