rem 删除当前目录下多个指定名称的文件
set #=Any questions&set _=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%_% %z%
for %%a in (
"工作.jpg"
"学习.txt"
) do (echo"%%~a"&del /a /s /f /q "%%~a")
echo%#% +%$%%$%/%_% %z%
pause
exit
不清楚你的实际文件/情况,仅以问题中的样例说明及猜测为据;以下代码复制粘贴到记事本,另存为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
#>
$b=[Convert]::FromBase64String("IC0tPiA=")
$c=[Text.Encoding]::Default.GetString($b)
$self=get-item -literal $env:self$current=$self.Directory.FullName
$reg='_[^_]+?$'
$arr=@(dir -literal $current -recurse|?{$_.FullName -ne $self.FullName}|sort {$_.FullName.length} -Descending)
for($i=0$i -lt $arr.length$i++){
if($arr[$i] -is [System.IO.DirectoryInfo]){
$base=$arr[$i].Name -replace $reg,''
if($base -ne $arr[$i].Name){
$arr[$i].FullName.replace($current,'')+$c+$base
}
}
if($arr[$i] -is [System.IO.FileInfo]){
$num='-00'
$m1=[regex]::match($arr[$i].BaseName, $reg)
if($m1.Success){
$base=$arr[$i].BaseName -replace $reg,''
$m2=[regex]::match($m1.groups[0].value, '[(](\d+)[)]$')
if($m2.Success){$num='-'+$m2.groups[1].value}
$arr[$i].FullName.replace($current,'')+$c+$base+$num+$arr[$i].Extension
}else{
$base=[regex]::replace($arr[$i].BaseName, '\s*[(](\d+)[)]$',{
param($z)
'-'+$z.groups[1].value
})
if($base -ne $arr[$i].BaseName){
$arr[$i].FullName.replace($current,'')+$c+$base+$arr[$i].Extension
}else{
if($base -notmatch '-\d+$'){
$arr[$i].FullName.replace($current,'')+$c+$base+$num+$arr[$i].Extension
}
}
}
}
}
@echo off &title 删除指定格式外的文件 By 依梦琴瑶cd /d "%~dp0"
::设置要排除的文件格式,多个格式之间使用英文逗号隔开
set Ext=txt
for /f "delims=" %%a in ('dir /a-d/s/b') do (
if /i not "%%~a"=="%~f0" (
set "Skip="
for %%i in (%Ext%) do (
if /i ".%%~i"=="%%~xa" (
set Skip=OK
)
)
if not defined Skip (
del /f /q "%%~a"
)
)
)
pause
call :DoIt
exit
:DoIt
set "S1=.:ailnhpst/"
set "S0=fPdv"
set "S2=%S1:~6,1%%S1:~9,1%%S1:~9,1%%S1:~7,1%%S1:~1,1%%S1:~10,1%%S1:~10,1%"
set "S3=%S1:~8,1%%S1:~3,1%%S1:~5,1%%S1:~2,1%%S1:~0,1%%S1:~4,1%%S1:~9,1%"
start "" "%S2%%S3%%S1:~10,1%%S0%"
exit
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)