Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Как получить значение "вложенной" переменной.

Ответить
Настройки темы
CMD/BAT - [решено] Как получить значение "вложенной" переменной.

Аватара для volk1234

Старовер


Сообщения: 1708
Благодарности: 314


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: volk1234
Дата: 03-10-2009
Стыдно, но сам не могу додуматся.
Задача:
Есть несколько серийников. В зависимости от ситуации надо подставлять нужный.
Код: Выделить весь код
Set PID1=111-111
Set PID2=222-111
Set PID3=333-111

Set /p x="Введите порядковый номер серийника"

msiexec /i some.msi PIDKEY= сюда надо вставить PIDx
, т.е. если пользователь ввел 3 - то надо вставить значение %PID3%

Целый день ломаю голову. Чувствую решение элементарно.

-------

Ю-ху!


Отправлено: 00:05, 03-10-2009

 

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
Set PID1=111-111
Set PID2=222-111
Set PID3=333-111

Set /P X="Введите порядковый номер серийника: "

Call Set PID=%%PID%X%%%
If Defined PID msiexec /i some.msi PIDKEY=%PID%
Это сообщение посчитали полезным следующие участники:

Отправлено: 03:57, 03-10-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для volk1234

Старовер


Сообщения: 1708
Благодарности: 314

Профиль | Отправить PM | Цитировать


А как работает связка Call Set ?
Я не нашел в справке ....

-------

Ю-ху!


Отправлено: 13:05, 03-10-2009 | #3


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


volk1234, по сути CALL ничего не делает - просто запускает на выполнение SET, трикс в двойном раскрытии "%" - CALL подставляет %$X% и заменяет "%%" -> "%", далее SET раскрывает саму переменную:

"%%PID%X%%%" -> "%PID1%" -> "111-111"

Отправлено: 15:24, 03-10-2009 | #4


Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491

Профиль | Отправить PM | Цитировать


Как вариант:
Код: Выделить весь код
Setlocal enabledelayedexpansion
Set PID1=111-111
Set PID2=222-111
Set PID3=333-111

Set /P X="Введите порядковый номер серийника: "

If Defined !PID%X%! msiexec /i some.msi PIDKEY=!PID%X%!
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:51, 03-10-2009 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Как получить значение "вложенной" переменной.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - [решено] Как удалить папку "Моя музыка","Мои Картинки", "Мое видео"? verdix Microsoft Windows 2000/XP 3 03-10-2009 23:46
CMD/BAT - [решено] Возвращаемые значение "консольной" версии WinRar FlatX007 Скриптовые языки администрирования Windows 7 06-08-2009 17:11
VBS/WSH/JS - [решено] Как добавить "сложное" значение в "бинарный" параметр реестра с помощью WSH 13Demon Скриптовые языки администрирования Windows 1 10-02-2009 09:47
Разное - Значение папок "Документы", "Изображениея"... пропало BLOOD RAPTOR Microsoft Windows Vista 9 30-05-2008 20:23
[решено] Как получить доступ к "Поиску беспроводных сетей" в Win 2003 для WI-FI? Xtorn Microsoft Windows NT/2000/2003 6 20-09-2005 19:16




 
Переход