Board logo

标题: [文件操作] BAT批处理如何根据文本内容删除文件? [打印本页]

作者: 9one9    时间: 2014-4-22 16:48     标题: BAT批处理如何根据文本内容删除文件?

我有批量删除某些文件的需求,文件路径保存为一个TXT,文件路径之间都换行处理,怎么写语句能够批量删除这些文件,然后将操作结果,例如文件是否存在,是否成功删除的信息输出到另外一个TXT里
作者: DAIC    时间: 2014-4-22 17:45

  1. @echo off
  2. (for /f "delims=" %%i in (a.txt) do (
  3.     if exist "%%i" (
  4.         echo 文件 "%%i" 存在
  5.         del /f /q "%%i" && echo 删除文件 "%%i" 成功 || echo 删除文件 "%%i" 失败
  6.     ) else (
  7.         echo 文件 "%%i" 不存在
  8.     )
  9. ))>b.txt
复制代码

作者: 9one9    时间: 2014-4-22 20:18

回复 2# DAIC


    感谢,我先测试一下
作者: 9one9    时间: 2014-4-22 20:26

回复 2# DAIC
测试了应该是正常工作的,那么请问能不能加密码运行?防止误操作
作者: DAIC    时间: 2014-4-22 20:32

回复 4# 9one9
  1. @echo off
  2. set mypass=bathome
  3. set input=
  4. set /p input=请输入密码:
  5. if "%input%" neq "%mypass%" (
  6.     echo 密码错误
  7.     pause
  8.     exit
  9. )
  10. (for /f "delims=" %%i in (a.txt) do (
  11.     if exist "%%i" (
  12.         echo 文件 "%%i" 存在
  13.         del /f /q "%%i" && echo 删除文件 "%%i" 成功 || echo 删除文件 "%%i" 失败
  14.     ) else (
  15.         echo 文件 "%%i" 不存在
  16.     )
  17. ))>b.txt
复制代码

作者: 9one9    时间: 2014-4-22 22:32

回复 5# DAIC
多谢,研究学习中
作者: 9one9    时间: 2014-4-23 12:04

回复 5# DAIC


    经实际删除测试发现不是所有都能成功执行,因为我待删除列表的txt是自动生成的,里面涉及大小写,大小写不完全正确的提示文件存在,但是删除失败,这是为什么
作者: Batcher    时间: 2014-4-23 12:32

删除命令是不区分大小写的,比如有个文件 a.txt,你写成 del /f /q A.txt 是可以成功删除的。
作者: 9one9    时间: 2014-4-23 13:36

本帖最后由 9one9 于 2014-4-23 13:47 编辑

回复 8# Batcher


    我是说比如待删除文件是 x:\bat\MAC.mpg 但是列表里面可能是 x:\BAT\MaC.mpg 或者x:\bat\mac.mpg 那么好像就会提示文件存在,但是删除失败,我希望通配大小写
作者: Batcher    时间: 2014-4-23 14:10

回复 9# 9one9


del命令本来就是统配大小写的,你自己做个试验就知道了。
删除失败可能是其它原因

C:\>dir /b *.mpg
MAC.mpg

C:\>del /f /q "MaC.mpg"

C:\>dir /b *.mpg
找不到文件
作者: 9one9    时间: 2014-4-23 14:48

回复 10# Batcher


    我感觉默认来说绝对路径都是区别大小写的,而我能提供的文件列表确实是无法控制大小写,除大小写外都是正确的,这样应该是无法删除的吧
作者: Batcher    时间: 2014-4-23 15:07

回复 11# 9one9


你的感觉不太准

c:\>dir /b *.mpg
MAC.mpg

c:\>del /f /q "C:\MaC.mpg"

c:\>dir /b *.mpg
找不到文件




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