中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-07 15:22
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已解决]如何批量同时删除扩展名为.xxx和.xx_的文件 查看 868 回复 5
楼 主 [已解决]如何批量同时删除扩展名为.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

对变量延迟还不熟悉 麻烦你们了

代码测试通过
论坛跳转: