标题: [文件操作] 【已解决】批处理删除某个目录下指定的文件 [打印本页]
作者: irresolute 时间: 2009-3-12 14:30 标题: 【已解决】批处理删除某个目录下指定的文件
如果”F:\作业“文件夹及很多它的子文件夹里面都有“谁骂本人.doc”这个文件,你一个个找到然后删除是不是太麻烦?我就写这几句能解决问题了。能显示位置和确认一下,但有多此一举之嫌。
@echo off
setlocal enabledelayedexpansion
for /r F:\作业 %%i in (谁骂本人.doc) do (
echo %%~fi
if exist %%~fi (
set /p c=输入y后将删除"%%~fi":
if !c!==y del /q/f "%%~fi" && echo success delete
)
)
pause>nul
[ 本帖最后由 irresolute 于 2009-3-12 22:37 编辑 ]
作者: batman 时间: 2009-3-12 15:56
楼上是典型的乱用for /r,再说批处理是难以对doc文件操作的,除非是cmd下生成的纯doc文件。
作者: irresolute 时间: 2009-3-12 19:52 标题: 回ls
兄弟:你没看楚就说了。
如果”F:\作业“文件夹及很多它的子文件夹里面都有“谁骂本人.doc”这个文件,你一个个找到然后删除是不是太麻烦?我就写这几句能解决问题了。当然有比这更简单的解决办法,只是我不会。
作者: Batcher 时间: 2009-3-12 20:04 标题: 回复 3楼 的帖子
建议把此楼描述更新到顶楼,以便更多人查看。
本版规则
1、求代码、寻求代码解释、探讨代码得失的帖子均可发在本版块,其余话题禁止在本版讨论;
2、求助时,务必在顶楼一次性把问题交代清楚;若文字难以表述,请配图说明,或是上传附件;但是,一切操作应从节约论坛资源的角度出发,能文字说明清楚的就无需再发图片,小图能说明问题的尽量不截全图,在不影响效果的前提下尽量压缩图片及附件;
3、所发代码若不止一行,请务必用code标记把代码部分首尾括起来,以便他人复制;
Q: 如何用code把代码扩起来?
A: http://bbs.bathome.net/thread-404-1-1.html
作者: Batcher 时间: 2009-3-12 20:07
这行代码能实现楼主的意思不?- del /s /f /q "F:\作业\*谁骂本人.doc"
复制代码
作者: irresolute 时间: 2009-3-12 20:16 标题: 稍改了下
- @echo off
- setlocal enabledelayedexpansion
- set /p c=请输入要删除的文件名:
- for /r F:\作业 %%i in (%c%) do (
- echo %%~fi
- if exist %%~fi (
- set /p c=输入y后将删除"%%~fi":
- if !c!==y del /q/f "%%~fi" && echo success delete
- )
- )
- pause>nul
复制代码
删除时能确认下
作者: Batcher 时间: 2009-3-12 20:30 标题: 回复 6楼 的帖子
这样不是也能确认么?- del /s /p "F:\作业\*谁骂本人.doc"
复制代码
作者: irresolute 时间: 2009-3-12 22:36 标题: 谢高手们指导
其实做之前我也想过/s参数
删除一个或数个文件。
DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names
ERASE [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names
names 指定一个或数个文件或目录列表。通配符可被用来
删除多个文件。如果指定了一个目录,目录中的所
有文件都会被删除。
/P 删除每一个文件之前提示确认。
/F 强制删除只读文件。
/S 从所有子目录删除指定文件。
/Q 安静模式。删除全局通配符时,不要求确认。
/A 根据属性选择要删除的文件。
attributes R 只读文件 S 系统文件
H 隐藏文件 A 存档文件
- 表示“否”的前缀
如果命令扩展名被启用,DEL 和 ERASE 会如下改变:
/S 开关的显示句法会颠倒,即只显示已经
删除的文件,而不显示找不到的文件。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |