Tol!k

|
Posted: Thu Apr 15, 2010 18:35 Post subject: |
|
|
Andrey_A wrote: | Есть ещё несколько просьб |
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
@echo off &chcp 1251 >nul &setlocal
rem Параметры: файл.txt "Префикс"
rem Подсчёт количества символов в строках, которые начинаются с "Префикс"
rem Автор: Tol!k
rem В префиксе можно использовать метасимволы:
rem . Подстановочный знак: любой символ
rem * Повтор: ноль или более предшествующих символов или классов символов
rem [класс] Класс символа: любой символ из множества
rem [x-y] Диапазон: любой символ из диапазона
echo Set Args = WScript.Arguments> "%temp%\StrLen.vbs"
echo WScript.StdOut.Write Len(Args(0))>> "%temp%\StrLen.vbs"
set "n=1"
for /f "delims=" %%i in ('findstr /b /r /c:"%~2" "%~1"') do call :cnt "%%~i"
move _len.txt _len.txt.bak 2>nul
set "n=1"
for /f "tokens=1 delims== " %%i in ('findstr /b /r /c:"%~2" "%~1"') do call :out "%%~i"
del /q "%temp%\StrLen.vbs" &if exist _len.txt start "" _len.txt
exit /b
:cnt
for /f "delims=" %%a in ('cscript.exe //b "%temp%\StrLen.vbs" "%~1"') do (
set /a n+=1 &title Found: %n% &set "a%n%=%%a"
)
goto :eof
:out
set /a n+=1 &call echo %~1 - %%a%n%%% знаков>> _len.txt
goto :eof
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
= ,похоже, является спецсимволом, поэтому выражение с ним приходится заключать в кавычки:
Code: | "Info.=" — любой символ
"Info[0-9]=" — одна цифра
"Info[0-9][0-9]=" — две цифры
"Info[0-9]*=" — любое кол-во цифр |
Last edited by Tol!k on Sun Apr 25, 2010 16:25; edited 3 times in total |
|