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

[文本处理] 【已解决】批处理如何删除当前目录除了指定txt文件名的文件

先谢谢各位了。

文件名.txt有如下内容:
14.txt
15.txt
01.txt
02.txt
03.txt
08.txt
09.txt
10.txt

当前目录底下有01.txt\02.txt…………15.txt

希望批处理能将文件名.txt有的文件名保存其他删除,自己写了一段,运行没有反应,谢谢各位了。
  1. @echo off
  2. for %%i in (*.*) do (
  3. for /f %%j in (文件名.txt) do (
  4. if %%i <> %%j then
  5. del /q %%j
  6. )
  7. )
复制代码

[ 本帖最后由 mxqchina 于 2009-3-12 23:20 编辑 ]

论坛搜索“之外”
论坛搜索“以外”
论坛搜索“例外”
发帖求助时,建议在帖子中描述清楚以下几点(有则改之无则加勉):

1、你的具体系统环境、应用程序环境是什么?你需要处理的数据长啥模样?

2、你为了解决自己的问题做出了哪些尝试?在google/baidu搜索了没?在本论坛搜索了没?阅读批处理基础教程了没?查阅系统自带的命令行帮助了没?

3、如果你曾经自己尝试着写过代码,但没能解决问题,请把你的完整代码贴出来,也许别人能够给你指出是什么地方出了问题,这样才更加有利于自己的进步。

Q: 如何使用论坛搜索功能来解决自己的问题?
A: 参考:http://bbs.bathome.net/thread-3473-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

  在批处理中,只有if……else……,没有if……then……,另外,比较大小的关键字是gtr、equ、geq、lss、leq,没有<>的用法。

  排除指定的文件而删除其余的文件,有两个思路:

  1、每获取一个文件名,就和文件清单做比对,也就是你目前这个方案;
  2、先把所有文件都取消属性,然后,给需要删除的文件添加隐藏或只读属性,最后,用del语句删除具有隐藏或只读属性的文件;

  在这两种方案中,第1种方案速度较慢,但是通用;第2种方案速度较快,但是只适用于不介意文件属性被改动的情形。
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

还可以用findstr进行过滤
  1. @echo off
  2. for /f "delims=" %%a in ('dir /a-d/b^|findstr /ixlg:文件名.txt') do echo del /q "%%a"
  3. pause
复制代码
命令行参考:hh.exe ntcmds.chm::/ntcmds.htm
求助者请拿出诚心,别人才愿意奉献热心!
把查看手册形成条件反射!

TOP

返回列表