忍不住,也发两个凑凑热闹。
代码一、
不生成临时文件,适合处理少量数据。可以处理重复数字。- @echo off
- if "%~1"=="" (
- setlocal enabledelayedexpansion&set /a n=0
- for /f "tokens=* delims=0" %%a in ('%~s0 h^|sort') do (
- set /a n+=1,n=n%%6
- set /p=%%a <nul
- if !n! equ 0 echo.
- )
- pause&exit
- )
- setlocal enabledelayedexpansion
- for /f "usebackq tokens=*" %%i in ("a.txt") do (
- for %%j in (%%i) do set m=0000000000%%j&echo !m:~-10!
- )
- endlocal
- goto :EOF
复制代码 代码二、
需确定最高位是多少。
生成一个临时文件也可以,不过既然已经生成了临时文件,不防再多生成一个以提高效率。
因为 for /f + findstr 效率很低。
适合处理海量数据。- @echo off&setlocal enabledelayedexpansion
- (for /f "usebackq tokens=*" %%i in ("a.txt") do (
- for %%j in (%%i) do echo %%j
- ))>tem
- sort tem>tem2
- cd.>tem
- for /l %%a in (1 1 4) do (
- set num=.!num!
- findstr /x !num! tem2>>tem
- )
- for /f "delims=" %%a in (tem) do (
- set /a n+=1,n=n%%6
- set /p=%%a <nul
- if !n! equ 0 echo.
- )
- echo.&pause
复制代码
|