标题: [文件操作] BAT批处理如何根据文本内容删除文件? [打印本页]
作者: 9one9 时间: 2014-4-22 16:48 标题: BAT批处理如何根据文本内容删除文件?
我有批量删除某些文件的需求,文件路径保存为一个TXT,文件路径之间都换行处理,怎么写语句能够批量删除这些文件,然后将操作结果,例如文件是否存在,是否成功删除的信息输出到另外一个TXT里
作者: DAIC 时间: 2014-4-22 17:45
- @echo off
- (for /f "delims=" %%i in (a.txt) do (
- if exist "%%i" (
- echo 文件 "%%i" 存在
- del /f /q "%%i" && echo 删除文件 "%%i" 成功 || echo 删除文件 "%%i" 失败
- ) else (
- echo 文件 "%%i" 不存在
- )
- ))>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 - @echo off
- set mypass=bathome
- set input=
- set /p input=请输入密码:
- if "%input%" neq "%mypass%" (
- echo 密码错误
- pause
- exit
- )
- (for /f "delims=" %%i in (a.txt) do (
- if exist "%%i" (
- echo 文件 "%%i" 存在
- del /f /q "%%i" && echo 删除文件 "%%i" 成功 || echo 删除文件 "%%i" 失败
- ) else (
- echo 文件 "%%i" 不存在
- )
- ))>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://bathome.net./) |
Powered by Discuz! 7.2 |