判断是否含有超过六个双字节字符,若成立则删除:- @echo off&setlocal enabledelayedexpansion 2>nul 3>nul
- for %%a in (图 报价 和讯 视频) do del /q *%%a*.html
- del /q *【*】*.html
- set "test=1111111111111111111111111"
- (dir /b *.html|findstr "[^'-Z].*\.html"&echo;)>tmp.txt
- ::利用findstr和if对于字符大小的判定规则,排除不含双字节字符的文件,并避免cmd对后缀名的判定障碍for /f "tokens=1* delims=:" %%a in ('findstr /o .* tmp.txt') do (
- set tmp=!last!!last!%test:1=-1%%test:1=-1%
- rem 表驱动法的另一种思路,利用set /a避免冗长的表变量
- set /a n=0,"n=%%a!tmp:~100!-o-6",o=%%a+2
- rem 计算字节数与字符数之差
- if !n! geq 0 del "!last!"&&echo 已删除!last!
- set last=%%~nxb
- )
- pause
复制代码 应证了两个想法,对这两个新思路比较满意,好玩而且很实用 |