|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] CMD Разрезание строки на подстроки |
|
|
CMD/BAT - [решено] CMD Разрезание строки на подстроки
|
Новый участник Сообщения: 17 |
Профиль | Отправить PM | Цитировать Всем привет!
Есть строка вида Появилась необходимость разрезать ее и сделать из нее переменные со значениями. Таких пар "ключ-значение" может быть большое количество. А получиться из этого должно что-то типа и т. д. То есть одноименные переменные с присвоенными им значениями. Обгуглился до кучи! Много вариантов когда делить нужно только по одному символу, а тут у меня его нужно осуществлять в несколько этапов по-ходу... А вообще я батникам удивляюсь, для каждого чиха язык заново почти что создавать надо! ((( Заранее благодарен! |
|
Отправлено: 19:18, 17-03-2014 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать Цитата Acuna:
Вы это хотели получить в результате: ??? |
|
Отправлено: 20:00, 17-03-2014 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 459
|
Профиль | Отправить PM | Цитировать |
Отправлено: 20:12, 17-03-2014 | #3 |
Новый участник Сообщения: 17
|
Профиль | Отправить PM | Цитировать Цитата:
Лично я предпочитаю, чтобы язык все-таки подчинялся каким-либо законам) Спасибо, оба приема действительно режут. Но я, возможно, не совсем точно описал задачу. В итоге мне нужно выводить эти переменные в echo. То есть echo %key1% выведет value1, echo %key2% выведет value2 и т. д. А изначально строка должна быть именно строкой (она будет вводиться как аргумент функции). Вообще, суть в том, что в батник нужно вбросить около 50 значений (то есть больше 9 возможных). Вот я и хотел их ввести всего одним аргументом... |
|
Отправлено: 20:30, 17-03-2014 | #4 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать Цитата Acuna:
Возможно и более 50 значений. Например, вот так: @echo off call:# "key1=value1" "key2=value2" "key3=value3" "key4=value4" "key5=value5"^ "key6=value6" "key7=value7" "key8=value8" "key9=value9" "key10=value10"^ "key11=value11" "key12=value12" "key13=value13" "key14=value14" "key15=value15" echo %key1% echo %key2% echo %key3% echo %key4% echo %key5% echo %key6% echo %key7% echo %key8% echo %key9% echo %key10% echo %key11% echo %key12% echo %key13% echo %key14% echo %key15% echo. rem Или проще: for /l %%i in (1 1 15) do call echo %%key%%i%% pause>nul exit /b :# for %%i in (%*) do set %%i exit /b |
||
Отправлено: 23:32, 17-03-2014 | #5 |
Новый участник Сообщения: 17
|
Профиль | Отправить PM | Цитировать Ах да, действительно, решение
оказалось наредкость изящным, а главное действенным. И без присущей батникам лишней писанины. Это понятно, просто количество аргументов изначально не известно. В том-то и прелесть этой задачи: юзер может ввести различное количество аргументов. Получается что-то сродни массиву. А что, если эту задачу немного усложнить, скажем еще одним аргументом ввести просто переменную: Что самое интересное, echo %1 в moysuperbatnik.bat при этом работает, но выводит сообщение "Переменная var не определена". Хотя ggg выводит. Это сообщение можно просто подавить, но боюсь того, как он может себя при этом повести на разных машинах... |
Отправлено: 16:39, 18-03-2014 | #6 |
Ветеран Сообщения: 1758
|
Цитата Acuna:
|
|
Отправлено: 18:21, 18-03-2014 | #7 |
Новый участник Сообщения: 17
|
Профиль | Отправить PM | Цитировать Foreigner, ой, да этот mybatch.cmd выкинул мне все мои установленные переменные и плюс надпись "Переменная среды key не определена". Это он ругается на строку set key(
Мне бы только второй аргумент распарсить в mybat.bat: А все остальные передавать в него as is... Ну все равно, ларчик хоть и фомкой, но все-равно уже потихоньку поддается) |
Последний раз редактировалось Acuna, 19-03-2014 в 17:21. Отправлено: 17:12, 19-03-2014 | #8 |
Ветеран Сообщения: 1758
|
Цитата Acuna:
|
|
Отправлено: 18:32, 19-03-2014 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 18:42, 19-03-2014 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBS/WSH/JS - [решено] Поиск подстроки в файле с последующей заменой подстроки (многопользовательский досту) | pogo | Скриптовые языки администрирования Windows | 12 | 06-12-2013 17:59 | |
CMD/BAT - CMD/BAT разбор строки с символом перехода строки в конце. | Alex1254 | Скриптовые языки администрирования Windows | 0 | 19-09-2013 19:24 | |
CMD/BAT - [решено] Преобразование строки в простое число CMD/BAT | kelevara | Скриптовые языки администрирования Windows | 7 | 26-04-2013 16:55 | |
Virustotal и разрезание больших файлов | Atle | Защита компьютерных систем | 1 | 08-10-2011 14:15 | |
Разное - [решено] Подскажите с цветом командной строки CMD | Keeper2006 | Оформление Windows XP | 1 | 06-10-2008 14:56 |
|