Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/14: Рейтинг темы: голосов - 14, средняя оценка - 4.57
mmm_crash
0 / 0 / 0
Регистрация: 05.11.2012
Сообщений: 1
1

Замена символов в значении переменной

08.11.2012, 13:03. Просмотров 2661. Ответов 1
Метки нет (Все метки)

Доброго времени суток!

Есть два файла:

1. config.ini:

host=hhhhhh
port=1234
objects=("home/123/qw" "home/1234/qwr" "home/1235/qwrt")
2. backup.bat:

Bash
1
2
3
4
5
6
@echo off
setlocal
set sFile=config.ini
for /f "useback tokens=1,2 eol=; delims==" %%i in ("%sFile%") do set %%i=%%j
for %%i in %objects% do (-host "%host%" -port "%port%" -objects %%i)
endlocal
Сейчас он работает правильно - для каждого объекта из objects генерит свою команду.
Но встала задача добавить в создаваемую команду еще одно условие: -package, в которое должно передаваться значение из objects, с замененными символами слеша на нижнее подчеркивание.
Для данного примера должен появиться следующий список команд:

Bash
1
2
3
-host "hhhhhh" -port "1234" -objects "home/123/qw" -package "home_123_qw"
-host "hhhhhh" -port "1234" -objects "home/1234/qwr" -package "home_1234_qwr"
-host "hhhhhh" -port "1234" -objects "home/1235/qwrt" -package "home_1235_qwrt"
Подскажите, пожалуйста, как это можно сделать!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2012, 13:03
Ответы с готовыми решениями:

Замена символов в значении переменной
Есть код который работал без помех (даты изымаемые из имени файла я в примере опустил). @Echo...

Замена определённого символа в значении переменной другим
Здравствуйте, можно ли считать фразу из txt файла в переменную и в переменной в этой фразе заменить...

Замена в значении переменной строки, содержащей знак равенства
Надо, например, заменить "a=b" на "с". Если делать так: @echo off set "x=<a=bx><a=by>" ...

Замена в значении переменной определённого символа символом процента
Есть выражение типа: set x=23/3 rem хочу заменить знак деления set y=%x:/=%% echo %y% В...

Пробелы в значении переменной
@echo off if %1 == KhZ910U9 ( goto m1 ) else ( goto m2 ) :m1 set cor1=\install path echo...

1
Charles Kludge
Клюг
7647 / 3162 / 383
Регистрация: 03.05.2011
Сообщений: 8,382
08.11.2012, 18:14 2
Как-то так:
Bash
1
2
3
4
5
6
7
8
9
@echo off
set sFile=config.ini
for /f "useback tokens=1,2 eol=; delims==" %%i in ("%sFile%") do set %%i=%%j
for %%i in %objects% do  call :repl %%i
goto :EOF
:repl
set pkg=%1
set pkg=%pkg:/=_%
echo:-host "%host%" -port "%port%" -objects %1 -package %pkg%
Про поиск/замену есть здесь.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.11.2012, 18:14

Как проверить наличие спецсимволов в значении переменной?
Как проверить наличие спецсимволов в переменной, которая будет использоваться для имени файла и...

В значении переменной TIME заменить все двоеточия и запятую на точки
Всем привет. Задача - в переменной %time% все двоеточия и запятые поменять на точки. как это...

Как по FTP передать файл с именем, основанном на значении переменной DATE?
Всем привет. Необходимо содержимое папки запаковать в архив, далее залить его на фтп. @Echo Off...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru