怎样用bat删除制定的文件/文件夹?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样用bat删除制定的文件/文件夹?相关的知识,希望对你有一定的参考价值。

参考技术A 删除文件夹:
rd
[路径]文件夹名
/s
/q
DOS信息:RMDIR
[/S]
[/Q]
[drive:]path
RD
[/S]
[/Q]
[drive:]path
/S
除目录本身外,还将删除指定目录下的所有子目录和
文件。用于删除目录树。
/Q
安静模式,带
/S
删除目录树时不要求确认
删除文件:
del
[路径]文件名
/q
DOS信息:
DEL
[/P]
[/F]
[/S]
[/Q]
[/A[[:]attributes]]
names
ERASE
[/P]
[/F]
[/S]
[/Q]
[/A[[:]attributes]]
names
names
指定一个或数个文件或目录列表。通配符可被用来
删除多个文件。如果指定了一个目录,目录中的所
有文件都会被删除。
/P
删除每一个文件之前提示确认。
/F
强制删除只读文件。
/S
从所有子目录删除指定文件。
/Q
安静模式。删除全局通配符时,不要求确认。
/A
根据属性选择要删除的文件。
attributes
R
只读文件
S
系统文件
H
隐藏文件
A
存档文件
-
表示“否”的前缀
如果命令扩展名被启用,DEL

ERASE
会如下改变:
/S
开关的显示句法会颠倒,即只显示已经
删除的文件,而不显示找不到的文件。

怎么用一个BAT文件删除电脑指定关键词文件名的文件,可以多个关键词一起模糊搜索删除?

参考技术A 不清楚你的实际文件/情况,仅以问题中的说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI<# :
cls&echo off&cd /d "%~dp0"&mode con lines=5000
rem 全盘搜索并删除文件名称中包含有指定关键字的文件
set #=Any question&set _=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%_% %z%
set "self=%~f0"
powershell -NoProfile -ExecutionPolicy bypass "Get-Content -literal '%~f0'|Out-String|Invoke-Expression"
echo;%#% +%$%%$%/%_% %z%
pause
exit
#>
$keywords=@"
*关键字1*.*
*关键字2*.*
*关键字3*.*
*关键字n*.*
"@;

$self=get-item -literal $env:self;
$kw=New-Object -TypeName System.Collections.ArrayList;
$arr=$keywords.trim("`r`n") -split '[\\r\\n]+';
for($i=0;$i -lt $arr.length;$i++)
    $reg=[regex]::replace($arr[$i], '[\\+\\.\\^\\$\\\\\\[\\]\\(\\)]', 
        param($m);
        return '\\'+$m.groups[0].value;
    );
    $reg='^'+$reg.replace('?','.').replace('*','.*')+'$';
    [void]$kw.add($reg);


for($i=90;$i -ge 65;$i--)
    $drive=([char]$i).toString()+':\\';
    if(test-path $drive)
        write-host ($drive+' Searching......') -ForegroundColor yellow;
        $files=@(dir -literal $drive -recurse|?($self -ne $_.Name) -and ($_ -is [System.IO.FileInfo]));
        for($j=0;$j -lt $files.length;$j++)
            $ismatch=$false;
            for($k=0;$k -lt $kw.count;$k++)
                if($files[$j].Name -match $kw[$k])
                    $ismatch=$true;break;
                
            
            if($ismatch)$files[$j].FullName;
        
        write-host "`r`n`r`n";
    

追问

就是全盘删除带有“数据”“合同”关键字的文件,所有文件类型,不包含文件夹

追答

按运行代码后窗口标题栏中的提示联系我

以上是关于怎样用bat删除制定的文件/文件夹?的主要内容,如果未能解决你的问题,请参考以下文章

bat批处理文件 删除制定文件夹当前日期3个月以前的文件

bat怎样删除指定文件夹内的指定后缀文件?

BAT怎样批量删除文件夹中,除了txt后缀名文件外的其他文件

怎样使用bat任务删除7天前的文件夹及其里面的文件

**.bat中,怎样将多文件,按文件名的关键字批量移动到多相应的文件夹中?

怎么用一个BAT文件删除电脑指定关键词文件名的文件,可以多个关键词一起模糊搜索删除?