找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 37105|回复: 11

[文件操作] 删除多级文件夹下的指定文件

[复制链接]
发表于 2014-11-29 13:11:47 | 显示全部楼层 |阅读模式
问题描述:在一个PDF.TXT的文本文档里百是要删除的文件名和扩展名,形如:集有(2013)第04393号.pdf
集有(2013)第04396号.pdf
集有(2013)第04404号.pdf ……格式(这个文本文档是用dir /b 命令提取出来的,每行一个完整的名字。),但是这些PDF文件存在于多级子目录里,要找到并删除这些PDF文件,如何写代码?谢谢,不知道我的描述是不是清楚?
发表于 2014-11-29 13:33:04 | 显示全部楼层
你的意思保留根目录的 删除子目录的?
 楼主| 发表于 2014-11-29 13:46:39 | 显示全部楼层
不是的,只要是PDF的名字和txt文本中的一样就删除,不管是根目录,还是子目录。另外,只有子目录才有pdf文件,根目录中没有,不知道我说的是不是清楚?
 楼主| 发表于 2014-11-29 17:12:03 | 显示全部楼层
回复 2# terse 不知道我说的是不是清楚,麻烦你帮我再看下,谢谢。
发表于 2014-11-29 17:46:10 | 显示全部楼层
先看看回显结果是否正确,如果没问题,删掉第4行的echo
  1. @echo off
  2. (for /f "delims=" %%a in (PDF.txt) do echo,\\%%a$)>$
  3. for /f "delims=" %%a in ('dir /a-d /b /s *.PDF^|findstr /ig:$') do (
  4.         echo del "%%a"
  5. )
  6. del $
  7. pause
复制代码
 楼主| 发表于 2014-11-29 18:01:41 | 显示全部楼层
回复 5# apang 你写的是正确的,回显结果正是我想要的,我刚学习bat不久,你的这种写法我从来没有看到过,学习了。我想请教一下:
  1. @echo off&setlocal enabledelayedexpansion
  2. For /F "Delims=" %%i In ('Dir /A:-D /S /B *.pdf') Do (
  3. set /p file=
  4. If exist !file!=="%%~nxi" Del "%%~i"
  5. )<PDF.txt
  6. pause
复制代码
按照这个思路能写的好吗?帮我修改一下。万分感谢。还有你的代码中:echo,\\%%a$)>$这段是怎么意思,麻烦稍微解释一下。
发表于 2014-11-29 19:43:57 | 显示全部楼层
本帖最后由 apang 于 2014-11-29 19:45 编辑

回复 6# kmustwxw


    按照你这个思路,除非 PDF.txt 中的每一行与 Dir /A:-D /S /B *.pdf 显示的每一行完全对应,否则无法实现

猜测你是想要用循环嵌套的办法:
  1. @echo off
  2. For /F "Delims=" %%i In ('Dir /A:-D /S /B *.pdf') Do (
  3.         for /f "delims=" %%j in (PDF.txt) do (
  4.                 if /i "%%~nxi" == "%%j" del "%%i"
  5.         )
  6. )
  7. pause
复制代码
echo,\\%%a$)>$ 是把PDF.txt每一行前面加路径字符(\\),后面加上表示结尾的字符($),然后生成一个临时文件$
发表于 2014-11-29 20:53:35 | 显示全部楼层
本帖最后由 CrLf 于 2014-11-29 21:53 编辑

危险动作请先测试:
  1. for /f "delims=" %%a in (PDF.txt) do del /s /f /a "%%a"
复制代码
靠,特么复制错了,赶紧改过来...

评分

参与人数 1技术 +1 收起 理由
apang + 1 +1

查看全部评分

发表于 2014-11-30 01:11:46 | 显示全部楼层
回复 8# CrLf


    卧槽,del 的 /s 开关完全不记得了。输入 DEL /?,还真有,脑袋现处于半停工、全混乱状态,呵呵。
发表于 2014-11-30 01:17:07 | 显示全部楼层
回复 9# apang


    ←_←又喝醉啦嗯嗯?
 楼主| 发表于 2014-11-30 12:17:34 | 显示全部楼层
回复 8# CrLf 你是说哪里错了? apang的代码吗??
发表于 2014-11-30 12:56:59 | 显示全部楼层
回复 11# kmustwxw


    是说自己的代码,有一部分是复制 apang 的,结果忘记把 *.pdf 改成 "%%a",现在已经改好了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 12:16 , Processed in 0.023774 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表