Войти

Показать полную графическую версию : Операции над переменными...в for


nfs911
28-01-2016, 14:26
Всем доброго времени суток!
Чисто спортивный интерес.
Вот есть такая конструкция
set test=ababab
echo %test:a=b%
получаем bbbbbb
но нигде не нашел как это делать в цикле for
for /f "tokens=*" %%x in ('echo ababab') do (echo %%x:a=b)
пробовал %%x:a=b% и %%x:a=b%%

Может я что-то упустил...

Iska
28-01-2016, 14:34
@echo off
setlocal enableextensions enabledelayedexpansion

for /f "tokens=*" %%x in (
'echo ababab'
) do (
set sVar=%%x
echo !sVar:a=b!
)

endlocal
exit /b 0

nfs911
28-01-2016, 14:58
Iska, вопрос был поставлен конкретно)))
вот еще вариант без расширенной обработки (но не катит для цикла более 1 раза))) )
for /f "tokens=*" %%x in ('echo ababab') do (set test=%%x)
echo %test:a=b%

Я так понимаю, что производить операции над %%подобными перемененными нельзя т.к. они в рамках цикла...?

Iska
28-01-2016, 15:07
вот еще вариант без расширенной обработки »
@echo off

for /f "tokens=*" %%x in (
'echo ababab'
) do (
set sVar=%%x
call echo %%sVar:a=b%%
)

exit /b 0

nfs911
28-01-2016, 15:19
Я так понимаю, что производить операции над %%подобными перемененными нельзя т.к. они в рамках цикла...? »
После unix - возможности windows cmd из коробки просто ужасны)))

Iska
28-01-2016, 15:26
После unix - возможности windows cmd из коробки просто ужасны))) »
Пользуйте PowerShell.




© OSzone.net 2001-2012