Board logo

标题: [文本处理] 求批处理全盘搜索某文件夹下的文件并删除 [打印本页]

作者: mtlee    时间: 2021-4-24 01:27     标题: 求批处理全盘搜索某文件夹下的文件并删除

求老师赐码:
例如: 有个文件暂且命名它为mtlee.txt ,可能是在C:\Program Files,也可能是在C:\Program Files (x86),又或者在其他电脑盘符下的多级目录下,现想通过快递搜索的方式找到该文件,并删除它。
例子重点:全盘搜索+多目录+搜索+删除

感恩!!!
作者: lancer    时间: 2021-4-24 07:33

使用dir命令可以知道文件的真实目录,然后用del删除即可
作者: 1152    时间: 2021-4-24 09:54

  1. del \\?\mtlee.txt
复制代码
\\?\是省略目录
作者: qixiaobin0715    时间: 2021-4-24 10:44

如果知道要搜索的文件可能的路径,最好不要使用全盘搜索,这样耗时长,占用资源大,还容易误删文件。
作者: qixiaobin0715    时间: 2021-4-24 10:53

本帖最后由 qixiaobin0715 于 2021-4-24 11:09 编辑

将下面代码放到可能的路径,为了防止误删,加参数/p:
  1. @del /a /f /p /s mtlee.txt
复制代码

作者: mtlee    时间: 2021-4-24 11:05

回复 5# qixiaobin0715


    老师,这种dir 显示目录效率会很快吗,可以支持搜索到多级目录下的文件吗
作者: qixiaobin0715    时间: 2021-4-24 11:07

不是dir而是直接del,不过会提示是否要删除,可防止误删文件。
作者: qixiaobin0715    时间: 2021-4-24 11:08

del即是delete
作者: mtlee    时间: 2021-4-24 11:08

回复 5# qixiaobin0715


    dir如何列出命令,支持多级目录呢
作者: mtlee    时间: 2021-4-24 11:09

回复 8# qixiaobin0715


    我明白您意思了,直接删,但是我这个文件可能存在的地方有多个,这种需要怎么处理呢
作者: qixiaobin0715    时间: 2021-4-24 11:11

本帖最后由 qixiaobin0715 于 2021-4-24 11:12 编辑

我说过了不是dir,而是直接找到符合条件的文件,会列出路径,让你自己决定是否删除。试试就行了。参数/s,即表示包括子文件夹。
作者: qixiaobin0715    时间: 2021-4-24 11:22

回复 10# mtlee
你可以将代码分别放到可能的路径进行处理啊,这样总比全盘搜索效率要高的多。
作者: mtlee    时间: 2021-4-24 13:28

回复 12# qixiaobin0715


  运行后提示找不到C:\windows\system32\ukey_2021-04-09.txt
作者: Batcher    时间: 2021-4-24 13:55

回复 1# mtlee


试试这样能否搜索到你想找的文件:批处理全盘搜索指定文件获取其完整路径
http://bbs.bathome.net/thread-3465-1-1.html
作者: qixiaobin0715    时间: 2021-4-24 16:17

回复 13# mtlee
你应当是把代码放在了:C:\windows\system32\ 下
说明此路径下本来就不存在你要搜寻的文件。
作者: 1152    时间: 2021-4-24 16:53

回复 11# qixiaobin0715
  1. del \\?\mtlee.txt /p /f /s
复制代码

作者: 1152    时间: 2021-4-24 16:55

回复 4# qixiaobin0715
  1. del \\?\mtlee.txt /s /f /p
复制代码
这样就好了
作者: 1152    时间: 2021-4-24 16:59

本帖最后由 1152 于 2021-4-24 17:02 编辑

回复 6# mtlee


    dir是显示本目录的文件和文件夹而不是显示目录中的目录。如果想显示目录中的目录用下面指令:
  1. type c:
  2. type d:
  3. type e:
  4. type f:
  5. type g:
  6. type h:
复制代码

作者: 1152    时间: 2021-4-24 17:02

回复 9# mtlee


    dir不能!下面指令才能
  1. type c:
  2. type d:
  3. type e:
  4. type f:
  5. type g:
  6. type h:
复制代码

作者: 1152    时间: 2021-4-24 17:06

不想回复 15# 乐色 qixiaobin0715
  1. del \\?\mtlee.txt /s /f /p
复制代码
这样不行吗?
作者: mtlee    时间: 2021-4-24 21:08

回复 15# qixiaobin0715


    bat我是直接放在桌面上运行的
作者: mtlee    时间: 2021-4-24 21:15

回复 17# 1152


    del \\?\mtlee.txt /s /f /p

我也试了这个语法,但是直接提示系统找不到指定的路径
可是我这个文件明明就在C:\Program Files\aaaa1111 这个测试目录下呀
作者: 1152    时间: 2021-4-24 21:29

本帖最后由 1152 于 2021-4-24 21:32 编辑

回复 22# mtlee


    我这边测试是正常的,显示是否删除后就删除了
作者: mtlee    时间: 2021-4-25 00:31

回复 23# 1152


    如果我要把语句直接指定到C:\Program Files\aaaa1111这个目录下(mtlee.txt这个文件就在这个目录下)
  然后我代码是这么写的:del /s /q /f  "C:\Program Files\aaaa1111\mtlee.txt"
然后运行后还是报错:"找不到文件C:\Program Files\aaaa1111\mtlee.txt"
这个语句有问题吗?还是因为会是其他问题呢
作者: qixiaobin0715    时间: 2021-4-25 06:33

本帖最后由 qixiaobin0715 于 2021-4-25 07:01 编辑
  1. del /a /f  "C:\Program Files\aaaa1111\mtlee.txt"
复制代码

作者: qixiaobin0715    时间: 2021-4-25 06:49

本帖最后由 qixiaobin0715 于 2021-4-25 06:50 编辑

如果文件目录如下
D:\abc\mtlee.txt
D:\abc\123\mtlee.txt
要将两个mtlee.txt都删除,可以指定目录。
  1. cd /d D:\abc
  2. del /s /a /f /p mtlee.txt
复制代码

作者: qixiaobin0715    时间: 2021-4-25 10:04

像这种情况,直接在cmd窗口中进行处理更方便。
作者: 1152    时间: 2021-4-25 17:27

回复 24# mtlee


    可不可能是文件夹?
作者: Batcher    时间: 2021-4-25 23:03

回复 24# mtlee


也可能是你敲代码的时候有错误,你打开一个CMD窗口,依次执行以下命令:
cd /d "C:\Program Files"
dir
cd "aaaa1111"
dir
del /q /f mtlee.txt
把结果发出来看看




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2