
问题描述:
想建一个批处理,自动删除D盘中所有文件和文件夹中的exe、rar以及zip格式的文件,其它文件保留,不知道能不能实现?用什么DOS命令呢?
解析:
attrib -h d:\*.exe /s
attrib -h d:\*.rar /s
attrib -h d:\*.zip /s
del /s /q /f d:\*.exe
del /s /q /f d:\*.rar
del /s /q /f d:\*.zip
把上面几行代码保存到.bat文件或.cmd文件,双击运行就行了;也可以把其中的del换成erase。
前三行代码是将那些文件的可能的隐藏属性去掉,因为后三行代码只能删除没有隐藏属性的文件。关于del的参数解释,请看(命令提示符下输入del/?后回车可得到更详细的解释):
/s 从所有子目录删除指定文件。
/q 安静模式。删除全局通配符时,不要求确认。
/f 强制删除只读文件。
@echo off & setlocal enabledelayedexpansion
:start
set sum=
set choose=
cls
set/p sum=请输入字段:
if "!sum!"=="" (goto start)
echo 字段为: !sum! [Y 继续 / N 重新输入]
set/p choose=请选择:
if "!choose!"=="" (goto start)
if /i "!choose!"=="Y" (goto start-next)
if /i "!choose!"=="N" (goto start)
goto start
:start-next
cls
copy "H:\家谱\转XML文件夹\!sum!\0001\index.xml" "G:\2013家谱\2013家谱成品添加好水印\家谱成品\!sum!\0001"
copy "H:\家谱\转XML文件夹\!sum!\0002\index.xml" "G:\2013家谱\2013家谱成品添加好水印\家谱成品\!sum!\0002"
copy "H:\家谱\转XML文件夹\!sum!\0003\index.xml" "G:\2013家谱\2013家谱成品添加好水印\家谱成品\!sum!\0003"
copy "H:\家谱\转XML文件夹\!sum!\0004\index.xml" "G:\2013家谱\2013家谱成品添加好水印\家谱成品\!sum!\0004"
copy "H:\家谱\转XML文件夹\!sum!\0005\index.xml" "G:\2013家谱\2013家谱成品添加好水印\家谱成品\!sum!\0005"
copy "H:\家谱\转XML文件夹\!sum!\0006\index.xml" "G:\2013家谱\2013家谱成品添加好水印\家谱成品\!sum!\0006"
echo. & echo 已完成复制... & pause
exit
:: 复制代码到文本中, 保存为: .bat 格式批处理文件运行即可
:: 中国批处理脚本联盟
\\?\%1UNC路径的一个特例,?是通配符,表示匹配0个或1个任意字符。使用UNC路径不会捡测路径中的保留字设备名称等,%1是默认为使用此批处理时输入的第一个值。
通常大家使用包含这个代码的小批处理文件来删除顽固文件,但我的建议是轻易不要使用这个代码段来删除文件,很危险的。
如果你想删除的文件夹中包含特殊路径,可能导致整个磁盘分区的数据全部被删除。比方说你的某个分区下有一个文本文件名字叫&1.txt或者^&1.txt,假设你想使用这个批处理来删除这个文本文件,你就会发现你的这个分区下所有的文件都被删除了,这是因为&在cmd中是一个特殊的连接命令.
你在批处理中传递X:\&1.txt
那么执行的就是
rd
/s
/q
\\?\X:\
1.txt
del
/f
/a
/q
\\?\X:\
1.txt
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)