Показать полную графическую версию : [решено] Простой вопрос по синтаксису
apozlevich
18-10-2012, 19:23
Продолжаем изучение bat'а по советам на форуме
Вот если надо заменить одну подстроку на другую в переменной - надо писать примерно так: %var:1=2%
А вот что делать с аргументами? (Которые %1, %2 и т.д.). Пробую %2:1=2 - ругается.
Конечно, как вариант из одного сделать другое, но это не комильфо :)
Например:
@echo off
setlocal enableextensions enabledelayedexpansion
set sArgString=%~1
set sArgWhatFind=%~2
set sArgReplaceBy=%~3
if defined sArgString (
if defined sArgWhatFind (
if defined sArgReplaceBy (
set sArgString=!sArgString:%sArgWhatFind%=%sArgReplaceBy%!
echo !sArgString!
) else (
call :Usage
exit /b 3
)
) else (
call :Usage
exit /b 2
)
) else (
call :Usage
exit /b 1
)
endlocal
exit /b 0
:Usage
echo Usage: %~nx0 ^<String^> ^<What find^> ^<Replace by^>
exit /b 0
E:\>0001.cmd "Мама мыла раму" Мама Папа
Папа мыла раму
из одного сделать другое, но это не комильфо »
Однако другого варианта я не знаю. И аргументы и переменные цикла сначала нужно превратить в "простую" переменную, а потом делать с последней все задуманные манипуляции.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.