Компьютерный форум 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=244973)

apozlevich 18-10-2012 19:23 2008029

Простой вопрос по синтаксису
 
Продолжаем изучение bat'а по советам на форуме
Вот если надо заменить одну подстроку на другую в переменной - надо писать примерно так: %var:1=2%
А вот что делать с аргументами? (Которые %1, %2 и т.д.). Пробую %2:1=2 - ругается.

Конечно, как вариант из одного сделать другое, но это не комильфо :)

Iska 18-10-2012 19:45 2008045

Например:
читать дальше »
Код:

@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 "Мама мыла раму" Мама Папа
Папа мыла раму



gora 18-10-2012 19:47 2008046

Цитата:

Цитата apozlevich
из одного сделать другое, но это не комильфо »

Однако другого варианта я не знаю. И аргументы и переменные цикла сначала нужно превратить в "простую" переменную, а потом делать с последней все задуманные манипуляции.


Время: 19:06.

Время: 19:06.
© OSzone.net 2001-