怎么用一个BAT文件删除电脑指定关键词文件名的文件,可以多个关键词一起模糊搜索删除?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么用一个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文件删除电脑指定关键词文件名的文件,可以多个关键词一起模糊搜索删除?的主要内容,如果未能解决你的问题,请参考以下文章