Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Удаление символов переменной (http://forum.oszone.net/showthread.php?t=340610)

NuclearBox 19-05-2019 23:30 2872386

Удаление символов переменной
 
Здравствуйте.

Как удалить из одной переменной сиволы, которые присвоены другой переменной?
Например, надо удалить %Symbols% из %Name%:
set "Name=01234"
set "Symbols=123"

Должно получиться
Name=04

Удаление явно прописанных символов работает:
set "Name=%Name:123=%"

Как вписать вместо "123" переменную %Symbols% ?

---
И второй вопрос - как удалить определенное количество последних символов в переменных с разной длинной?

Например, для:
set "Name1=0123"
set "Name2=01234567"

удалить по 2 последних символа, чтобы получилось:
Name1=01
Name2=012345






Iska 20-05-2019 00:47 2872397

Цитата:

Цитата NuclearBox
Как удалить из одной переменной сиволы, которые присвоены другой переменной? »

Код:

@echo off
setlocal enableextensions enabledelayedexpansion

set "Name=01234"
set "Symbols=123"

echo !Name:%Symbols%=!

endlocal
exit /b 0

Цитата:

Цитата NuclearBox
как удалить определенное количество последних символов в переменных с разной длинной? »

Код:

@echo off
setlocal enableextensions enabledelayedexpansion

set "Name1=0123"
set "Name2=01234567"

echo %Name1:~0,-2%
echo %Name2:~0,-2%

endlocal
exit /b 0

Читайте:
Код:

set /?

NuclearBox 20-05-2019 02:19 2872399

Iska, спасибо за помощь!

megaloman 20-05-2019 07:47 2872410

NuclearBox, Мои 3 копейки: ИМХО, этот способ более универсален.
Код:

@Echo Off
cls
        set "Name=01234"
        set "Symbols=123"

        Echo %Name%
        Call Set "Name=%%Name:%Symbols%=%%"
        Echo %Name%


        set "Name=Ура! Ура! Мы в тылу врага!"
        set "Symbols= Ура!"

        Echo %Name%
        Call Set "Name=%%Name:%Symbols%=%%"
        Echo %Name%
Pause

Код:

@Echo Off
cls
        set "Name=01234"
        Set /A N=2

        Echo %Name%
        Call Set "Name=%%Name:~0,-%N%%%"
        Echo %Name%

        set "Name=Ура, Ура! Мы в тылу врага!"
        Set /A N=17

        Echo %Name%
        Call Set "Name=%%Name:~0,-%N%%%"
        Echo %Name%
Pause


NuclearBox 20-05-2019 10:25 2872427

megaloman, супер. Спасибо! Для обучения бесценно. Более понятно. На Ваших кодах и начал изучать командную строку. Пока с трудом понимаю использование локального окружения, как в варианте Iska. Но рано или поздно и этот гранит прогрызу. Да поможет мне /?


Время: 13:53.

Время: 13:53.
© OSzone.net 2001-