多个文本内有重复的字符,我设定一旦有重复的,就将其所含内容的整个文本删除,但是效率非常低下,1000个txt文档,就需要好几分钟。而我这里有上万个,求高手能否改进?- @echo off&setlocal enabledelayedexpansion
- for %%a in (*.txt) do (
- for /f "usebackq delims=. tokens=2,*" %%b in (%%a) do (
- set "str=%%b"
- set "str=!str: =!"
- for %%i in (!str!) do (
- set/a _%%i+=1
- if !_%%i! gtr 2 echo %%a>>1.txt 2>nul
- )
- set _%%i=
- )
- )
- pause
复制代码 我这里写的是读入 1.txt
然后在读入的内容中发现
33303564545.txt
33303564545.txt
33303564545.txt
33303564545.txt
999999999999999.txt
999999999999999.txt
999999999999999.txt
以上是ECHO出来的,就是条件循环判断正确的,就其删除,但是会出现好几次,有上万个这样的文件,所以我想先写入一个文本,然后再根据文本上的地址删除,不知道有没有更加高效的方法,做到可以让删除的提示不出现那么多次,2>NUL 只是假象。。
意思就是换成 DEL 里面的路径文件,依旧效率不高,最好能只显示一次,然后一次性删除,不符合条件的文本。因为有上万个,希望能高效一点,求好心人解决!
运行是正常的,就是效率很低下。。 |