中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-30 18:21
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]帮助分析以下删除指定文件的错误再哪? 查看 1,546 回复 19
16 发表于 2008-10-27 15:06 ·  中国 黑龙江 大庆 联通
高级用户
★★
积分 547
发帖 261
注册 2006-04-15 16:50
20年会员
UID 53887
状态 离线
Originally posted by tireless at 2008-10-27 11:30:
额..你先用 echo,看被删除的文件对不对。

@echo off
set /p filename=请输要删出的文件名:
for %%a in (c: d:) do (
for /f "del ...

又一个测试中的问题:
我在批处理文件所在的目录建立了1.txt和2.txt,随便在其他的某个磁盘下也建立了1.txt和2.txt,其中2.txt是隐藏的,但奇怪的是只删除:
1.txt和批处理目录下的2.txt,但另一个2.txt没删除,当我再次运行批处理删除这个隐藏属性的2.txt可以删除,为什么删除不是一次性的?
17 Re 16 楼 发表于 2008-10-27 15:30 ·  中国 江西 赣州 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
我测试能删除。输入 1.txt;2.txt 或 1.txt 2.txt 都可以。

@echo off
set /p filename=请输要删出的文件名:
for %%a in (c: d:) do (
for /f "delims=" %%b in ('dir /s /b /a:-d %%a\%filename% 2^>nul') do (
del /F "%%b" 2>nul
del /F /a:h "%%b" 2>nul
)
)
pause


[ Last edited by tireless on 2008-10-27 at 15:32 ]
18 发表于 2008-10-27 15:42 ·  中国 黑龙江 大庆 联通
高级用户
★★
积分 547
发帖 261
注册 2006-04-15 16:50
20年会员
UID 53887
状态 离线
我也测试了多遍啊!同批处理在一个目录下的文件没问题,但其它盘符下的隐藏文件就不能一次性删除,麻烦您在测试一下好吗?当然,我也得在测试测试!
19 发表于 2008-10-27 15:48 ·  中国 黑龙江 大庆 联通
高级用户
★★
积分 547
发帖 261
注册 2006-04-15 16:50
20年会员
UID 53887
状态 离线
我又测试了一遍,还是不行。
测试条件:

1。C盘下有1.txt和2.txt,2.txt是隐藏的;
2。D盘下有1.txt和2.txt,2.txt是隐藏的,批处理文件也在D盘下。
执行:
双击批处理文件,无论输入1.txt 2.txt还是1.txt;2.txt,测试结果都相同。

测试结果:
C盘下的1.txt删除掉;
D盘下的有1.txt和2.txt都删除掉了。

C盘下的隐藏文件2.txt没有被删除。
20 发表于 2008-10-27 16:05 ·  中国 江西 赣州 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
抱歉,我也不知道为什么,确实会出现你说的情况。改成这样就可以:

@echo off
set /p filename=请输要删出的文件名:
for %%a in (c: d:) do (
cd /d %%a\
for /f "delims=" %%b in ('dir /s /b /a:-d %filename% 2^>nul') do (
del /F "%%b" 2>nul
del /F /a:h "%%b" 2>nul
)
)


[ Last edited by tireless on 2008-10-27 at 16:07 ]
论坛跳转: