Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Подсчёт к-ва символов в строках .txt файла и вывод отчёта 
Author Message
Tol!k



PostPosted: Thu Apr 15, 2010 18:35    Post subject: Reply with quote

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
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group