Хочу сделать такое: скрипт просит вас ввести слово.
Затем он просит ввести другое слово и после этого ищет повторяющеися буквы в словах и, если пара была найдена, то он удаляет эти буквы в обоих словах. И так до тех пор, пока второе слово полностью не исчезнет.
Мне это нужно для написания дешифратора, путем которого делается что то вроде этого: есть слово пнкаоуонкраркнлаимаь мы вводим его а затем вводим ключ, который представляет собой нкуонкракнаимаь,
после этого он удаляет повторяющиеся символы (а это не обязательно буквы, цифры тоже) и на выходе выдает первое слово уже без "размешивания" в фразе: пароль.
CMD/BAT - [решено] Необходимо удалить повторяющеися символы в двух вводимых словах
-
Foreigner
Re: CMD/BAT - [решено] Необходимо удалить повторяющеися символы в двух вводимых словах
Что значит "повторяющиеся символы"? Если из "слова" удалять символы, которые есть в "ключе", то на выходе получим "пл", а не "пароль"
Код:
Код:
Код: Выделить всё
@echo off
setlocal enabledelayedexpansion
set "word=пнкаоуонкраркнлаимаь"
set "key=нкуонкракнаимаь"
set "n=0"
:0
set "l=!key:~%n%,1!"
set "word=!word:%l%=!"
set /a n+=1
if "!key:~%n%,1!"=="" goto:break
goto:0
:break
echo %word%-
Foreigner
Re: CMD/BAT - [решено] Необходимо удалить повторяющеися символы в двух вводимых словах
Как-то так, если правильно понял в ПМ:
Код:
Код:
Код: Выделить всё
@echo off
setlocal enabledelayedexpansion
set "word=пнакрвоулеь"
set "keyw=нквеу"
set "cnt1=99"
set "n=0"
:0
if not "!word:~%n%,1!"=="" (
set /a cnt1+=1
set "word_!cnt1!=!word:~%n%,1!"
set /a n+=1
goto:0
)
set "cnt2=99"
set "n=0"
:1
if not "!keyw:~%n%,1!"=="" (
set /a cnt2+=1
set "keyw_!cnt2!=!keyw:~%n%,1!"
set /a n+=1
goto:1
)
:2
for /l %%i in (100,1,%cnt2%) do (
for /l %%j in (100,1,%cnt1%) do (
if defined keyw_%%i (
if "!keyw_%%i!"=="!word_%%j!" (
set "keyw_%%i="
set "word_%%j="
goto:2
))))
for /f "tokens=2 delims==" %%i in ('set word_') do 0>nul set /p="%%i"
echo.