[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 【已解决】批处理删除某个目录下指定的文件

如果”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 编辑 ]
1

评分人数

    • Batcher: 感谢主动给标题标注[已解决]字样PB + 2

楼上是典型的乱用for /r,再说批处理是难以对doc文件操作的,除非是cmd下生成的纯doc文件。
***共同提高***

TOP

回ls

兄弟:你没看楚就说了。
如果”F:\作业“文件夹及很多它的子文件夹里面都有“谁骂本人.doc”这个文件,你一个个找到然后删除是不是太麻烦?我就写这几句能解决问题了。当然有比这更简单的解决办法,只是我不会。

TOP

回复 3楼 的帖子

建议把此楼描述更新到顶楼,以便更多人查看。

本版规则
1、求代码、寻求代码解释、探讨代码得失的帖子均可发在本版块,其余话题禁止在本版讨论;
2、求助时,务必在顶楼一次性把问题交代清楚;若文字难以表述,请配图说明,或是上传附件;但是,一切操作应从节约论坛资源的角度出发,能文字说明清楚的就无需再发图片,小图能说明问题的尽量不截全图,在不影响效果的前提下尽量压缩图片及附件;
3、所发代码若不止一行,请务必用code标记把代码部分首尾括起来,以便他人复制;


Q: 如何用code把代码扩起来?
A: http://bbs.bathome.net/thread-404-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

这行代码能实现楼主的意思不?
  1. del /s /f /q "F:\作业\*谁骂本人.doc"
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

稍改了下

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /p c=请输入要删除的文件名:
  4. for /r F:\作业  %%i in (%c%)  do (
  5. echo %%~fi
  6. if exist %%~fi  (
  7. set /p c=输入y后将删除"%%~fi":
  8. if !c!==y del /q/f "%%~fi" && echo success delete
  9. )
  10. )
  11. pause>nul
复制代码
删除时能确认下

TOP

回复 6楼 的帖子

这样不是也能确认么?
  1. del /s /p "F:\作业\*谁骂本人.doc"
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

谢高手们指导

其实做之前我也想过/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 开关的显示句法会颠倒,即只显示已经
删除的文件,而不显示找不到的文件。

TOP

返回列表