igor_andreev Если честно, не разобрался я
Не дорос еще до такого кода.
Также подумал, что для той задачи подсчитать кол-во пробелов - не выход, т.к. слово может быть отделено и 2-мя и 3-мя и сколько хошь пробелами.
Решил полностью задачу
Ysan Надеюсь, она сюда заглянет. Знаю, что коряво - создает темповые файлы, допускает не более 26 слов в строке, опять же проблемы со спецсимволами (но тут похоже можно обойти - просто записывать слова в temp.txt в кавычках) и долго на больших файлах, но как умею
Код: @echo off
setlocal enabledelayedexpansion
if "%~1"=="" (
echo Не задан текстовый файл для анализа
goto end)
set file=%~1
::Выяснение кол-ва слов
for /f "tokens=1-26 delims= " %%a in (%file%) do (
(
echo %%a
echo %%b
echo %%c
echo %%d
echo %%e
echo %%f
echo %%g
echo %%h
echo %%i
echo %%j
echo %%k
echo %%l
echo %%m
echo %%n
echo %%o
echo %%p
echo %%q
echo %%r
echo %%s
echo %%t
echo %%u
echo %%v
echo %%w
echo %%x
echo %%y
echo %%z
)>>temp.txt
)
findstr /r /v "Режим вывода команд на экран (ECHO) отключен." temp.txt>words.del
del /q temp.txt
set counter=0
for /f "tokens=*" %%a in (words.del) do (
set /a counter=!counter!+1)
del /q words.del
set words_quantity=%counter%
::Выяснение кол-ва строк
::Выяснение кол-ва непустых строк
set counter=0
for /f "tokens=*" %%a in (%file%) do (
set /a counter=!counter!+1)
::Выяснение кол-ва пустых строк
set count=0
for /f "tokens=*" %%a in ('findstr /r /v /n "." %file%') do (
set /a count=!count!+1)
::Выяснение общего кол-ва строк
set /a line_quantity=%counter%+%count%
::Выяснение кол-ва символов
::Выяснение размера текстового файла
for %%a in (%file%) do set /a "file_length=%%~za"
::Выяснение кол-ва непечатаемых символов в конце каждой строки
set /a invisible_symbols=2*%line_quantity%
::Вычет невидимых символов от размера файла
set /a symbols_quantity=%file_length%-%invisible_symbols%-1
echo Всего символов (вместе с пробелами) в файле %file%: %symbols_quantity%
echo Всего слов в файле %file%: %words_quantity%
echo Всего строк в файле %file%: %line_quantity%
:end