#variables #dos #substring
#переменные #dos #подстрока
Вопрос:
Я пытаюсь извлечь подстроку из переменной в пакетном скрипте DOS. Насколько я понимаю, это делается с помощью оператора, подобного следующему:
set substring=%original_string:~2,3%
Где 2 будет смещением на основе нуля, а 3 будет длиной извлекаемой подстроки. Пока все хорошо, верно?
Но мне нужно, чтобы моя длина была переменной, а не явным числом. Я почти уверен, что это можно сделать, но правильный синтаксис ускользает от меня 🙁
То, что я пробовал, это…
set string=string
set length=3
set substring=%string:~0,%length%%
echo substring is: %substring%
Что я получаю…
substring is: length%
Я пытался удалить 1 набор знаков процента, но … ничего хорошего.
Кто-нибудь знает, могу ли я и как я могу делать то, что хочу???
спасибо!
Комментарии:
1. Ну, я нашел кого-то, кто НАМНОГО лучше в этом, чем я, и он дал мне решение за считанные секунды!
call set substring=%%string:~0,%length%%%
(Теперь мне просто нужно узнать, как и почему это работает!)2. Если это решение работает для вас, сделайте его ответом и примите его.
3. Первый комментарий не работает для меня, у вас есть другая идея?
Ответ №1:
Измените ее на это:
call set substring=%%string:~0,%length%%%
Комментарии:
1. Я пробовал ваше решение, но у меня не работает. У вас есть другая идея?