Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/96: Рейтинг темы: голосов - 96, средняя оценка - 4.67
 Аватар для Abimeleh
0 / 0 / 0
Регистрация: 30.05.2015
Сообщений: 85

Подсчёт количества символов в строке (определение длины строки)

23.10.2015, 22:18. Показов 18549. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
И еще одна маленькая задача, с первой связана лишь косвенно.
Необходимо правильно выполнить выход из цикла. Этот скрипт считает количество
символов в переменной. При его запуске выходит ошибка: Непредвиденное появление: (goto.
И далее из-за этого не выполняется последняя строка.
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
@echo off
set var=%~1 
set /a count=0
:start 
set var=%var:~1%
set /a count=count+1 
echo %count%
if %var%=="" (goto exit)
goto start 
:exit
echo %count%
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.10.2015, 22:18
Ответы с готовыми решениями:

Подсчёт символов и вывод их количества
Есть символьная переменная (строка). Нужно посчитать, сколько раз в строке встречается каждый символ и вывести количество каждого символа.

Сложная задача на подсчёт длины строки
Создать пакетный файл, который принимает в качестве аргумента полное имя файла, состоящего из одной строчки, и считает длину этой строчки. ...

Подсчёт слов в строке. Подсчёт символов в словах строки
Начал изучение строк в С++. Решая задачу по поиску количества строк и количеству указанных символов упёрся лбом в стену. Теорию понял:...

7
1781 / 763 / 130
Регистрация: 09.04.2011
Сообщений: 1,325
23.10.2015, 23:10
Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

Добавлено через 11 минут
Цитата Сообщение от Abimeleh Посмотреть сообщение
И еще одна маленькая задача
если идти по Вашему принципу, то в стр 8 переменную var нужно заключить в кавычки. Как вариант
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@echo off
setlocal enabledelayedexpansion
 
set var=1111 
::set /a count=0
:start 
set var=%var:~1%
if not "%var%"=="" (
set /a count+=1
goto start
) else (
goto exit
)
:exit
echo %count%
 
pause
exit
1
 Аватар для Abimeleh
0 / 0 / 0
Регистрация: 30.05.2015
Сообщений: 85
24.10.2015, 00:07  [ТС]
Добавлено через 27 минут
если идти по Вашему принципу,
Принцип конечно отсойный. Как это можно решить по другому ?
0
Покинул форум
3700 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
24.10.2015, 11:30
Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

Посчитать количество символов в строке можно несколькими способами:
1) с помощью самого командного языка
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
@echo off
  setlocal enabledelayedexpansion
    set "i=1"
    set "s=this is test string"
    for /l %%i in (1, 1, 255) do (
      set "c=!s:~%%i!"
      if defined c set /a "i+=1"
    )
    echo:!i!
  endlocal
exit /b
2) гибрид с JScript
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@set @len=0 /*
  @echo off
    set @len=
    cscript /nologo /e:jscript "%~f0" %*
  exit /b
*/
 
(function(s) {
  WScript.echo(s.length);
}(
  WScript.Arguments.length !== 1
  ? WScript.Quit(1)
  : WScript.Arguments.Unnamed(0)
));
Пример использования такого сценария:
Code
1
2
E:\sandbox> strlen.cmd "this is test string"
19
3) с помощью PowerShell
Windows Batch file
1
powershell /noprofile /command "&{'this is test string'.Length}"
2
 Аватар для ComSpec
3462 / 2000 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
24.10.2015, 13:12
Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

Способ с использованием временного файла:


Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
@echo off& setlocal
 
set "var=bla-bla-bla"
 
:: Вывод длины строки:
>.tmp echo "%var%"& for %%i in (.tmp) do cmd/c set/a %%~zi-4& echo.& del .tmp
 
:: Длина строки как значение присваивается переменной:
>.tmp echo "%var%"& for %%i in (.tmp) do set/a length=%%~zi-4& del .tmp
echo %length%
 
pause>nul& endlocal& exit/b

.
2
 Аватар для Abimeleh
0 / 0 / 0
Регистрация: 30.05.2015
Сообщений: 85
24.10.2015, 13:27  [ТС]
Спасибо всем за ответы.
0
 Аватар для ComSpec
3462 / 2000 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
24.10.2015, 19:25
Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

Мой вариант определения длины строки без посимвольного укорачивания значения переменной и без счётчика с использованием команд "FINDSTR" и "FIND" и бесконечного цикла, выход из которого осуществляется сразу по окончании обработки строки:


Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
@echo off& setlocal
 
set "var=bla-bla-bla"
 
:: Вывод длины строки:
cmd/v/c "for /l %%i in () do @(if defined d (set d=.!d!) else set d=.)& if defined var (echo.!var!| findstr !d!|| exit/b) else exit/b"| find/c /v ""
 
:: Длина строки как значение присваивается переменной:
for /f %%i in ('cmd/v/c "for /l %%i in () do @(if defined d (set d=.!d!) else set d=.)& if defined var (echo.!var!| findstr !d!|| exit/b) else exit/b"^| find/c /v ""') do set "length=%%i"
echo %length%
 
pause>nul& endlocal& exit/b

.



В случае, когда переменная для строки не определена, значение переменной для длины строки "length" будет равным нулю.
0
3 / 3 / 0
Регистрация: 05.07.2021
Сообщений: 13
06.07.2021, 01:43
можно так попробовать:
Windows Batch file
1
2
3
4
5
6
@echo off
set /p "tіtle=write__"&set n=0
:str
echo %tіtle%|findstr /i /c:"tіtle"||(set tіtle=%tіtle:~1%&set /a n+=1&goto:str)
echo %n% symols
pause
Правда некоторые служебные символы за своих не принимает к примеру ^&<>"()|
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.07.2021, 01:43
Помогаю со студенческими работами здесь

Подсчёт количества символов в строке
Доброго времени суток! Хочу написать программу, которая будет отображать количество одинаковых символов в тексте и процентное их...

Подсчёт количества символов в строке
Помогите пожалуйста, последнее задание никак не могу решить. Задание: Дана строка символов. Подсчитать количество букв, цифр и всех...

Подсчёт количества символов * в строке
а не могли бы Вы подсказать как это делать ? Сделать задание, используя цикл Do..While. С клавиатуры вводиться последовательность...

Подсчёт количества повторений символов в строке
Подскажите , почему не работает код? Ввожу строку , ввожу символ, проверяю сколько раз он встречается в строке. Но встречается он всегда 0...

Подсчёт количества символов в каждой строке textBox
Здравствуйте. Есть задача, нужно в textBox (с включённым свойством MultiLine), просчитать длину строки и если длинна превышает 5...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru