Bat脚本删除具有特定扩展名的文件

时间:2014-05-08 15:31:35

标签: batch-file

我正在尝试编写一个bat脚本,它将从所有驱动器(包括附加的外部驱动器)中删除具有特定扩展名的所有文件(例如' .log')。

例如,如果没有连接外部驱动器,脚本将删除所有' .log'此时C:\和其他已安装分区下的文件。

如果连接了外部驱动器,脚本将删除所有' .log'所有驱动器下的文件。

[不重要]如果脚本可以保留大于1MB的.log文件,那将是非常好的。此外,如果脚本可以自动检测新连接的驱动器并删除' .log'那将是非常棒的。来自他们的文件。

我知道我问了很多,但你的知识给我留下了很多次印象!

非常感谢你!

2 个答案:

答案 0 :(得分:0)

这就是你想要的。

@echo off
pushd C:\
echo removeing all log files
del \*.log /s /f /q
echo done & pause
exit

它将搜索扩展名为.log的所有文件。只要确保你不需要其中任何一个。您需要以管理员身份运行批处理文件。将pushd C:\替换为pushd [your drive]:\

要使用所有驱动器:

@echo off
echo removeing all log files
pushd A:\
del \*.log /s /f /q
pushd B:\
del \*.log /s /f /q
pushd C:\
del \*.log /s /f /q
pushd D:\
del \*.log /s /f /q
pushd E:\
del \*.log /s /f /q
pushd F:\
del \*.log /s /f /q
pushd G:\
del \*.log /s /f /q
pushd H:\
del \*.log /s /f /q
pushd I:\
del \*.log /s /f /q
pushd J:\
del \*.log /s /f /q
pushd K:\
del \*.log /s /f /q
pushd L:\
del \*.log /s /f /q
pushd M:\
del \*.log /s /f /q
pushd N:\
del \*.log /s /f /q
pushd O:\
del \*.log /s /f /q
pushd P:\
del \*.log /s /f /q
pushd Q:\
del \*.log /s /f /q
pushd R:\
del \*.log /s /f /q
pushd S:\
del \*.log /s /f /q
pushd T:\
del \*.log /s /f /q
pushd U:\
del \*.log /s /f /q
pushd V:\
del \*.log /s /f /q
pushd W:\
del \*.log /s /f /q
pushd X:\
del \*.log /s /f /q
pushd Y:\
del \*.log /s /f /q
pushd Z:\
del \*.log /s /f /q
echo done & pause
exit

答案 1 :(得分:0)

你需要一个for循环才能做到这一点(以09步骤的代码作为胆量:))

@echo off
for /f "skip=1 delims=" %%x in ('wmic logicaldisk get caption') do (
    echo INFO: Removeing all log files from %%x\
    del %%x\*.log /s /f /q
)
echo INFO: Done
pause