Batch - Найти вхождения определенной буквы в заданной строке - PullRequest
0 голосов
/ 18 марта 2019

Мне нужно автоматизировать скучное действие, которое я уже реализовал для OSX.Тем не менее, я застрял в моем "языковом" переводе, потому что я не могу найти способ, основываясь на примере ниже, чтобы у меня было 3 \ в следующей строке:

.. \.. \ .. \ ..

PS: я не смог найти работу "cd -" в CMD .

У меня есть следующая функция, которую я создал:

:: Count the occurrences of a certain char in the given string
:: $~1 (input) String
:: $~2 (char) Char to be found & counted
:count_occurrences
set input=%1
set char=%2

set count=0
for %%a in ("%input:\= " "%") do set /A count+=1
echo. %count%
SET %~3=count

EXIT /B 0

Тем не менее, это возвращает все время 1 .. Однако мне, основываясь на этом примере (https://stackoverflow.com/a/41961590/6093604),, оно должно вернуть3.

Спасибо за любую помощь!

Редактировать 1 (в основном работает)

Мой код теперь следующий:

:: Count the occurrences of a certain char in the given string
:: $~1 (input) String
:: $~2 (char) Char to be found & counted
:: $~3 (count) The returned value
:count_occurrences
set "input=%~1"
set "char=%~2"

echo. %input%
for %%a in ("%input:\= " "%") do set /A %~3+=1

EXIT /B 0

Какмогу ли я использовать параметр 2 $~2 как символ для подсчета? Потому что, как я сказал в своем комментарии, здесь мы ищем только \

Еще раз спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...