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

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

Ответить
Настройки темы
CMD/BAT - [решено] Переменная в переменной)

Новый участник


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

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


Изменения
Автор: alexx_core
Дата: 03-07-2018
Здравствуйте!)

Столкнулся с проблемой такого плана. Нужно составить имя переменной из нескольких переменных.

Имеем переменные (имя пользователя) хранящие данные (пароль)

Код: Выделить весь код
set prefix-aa-comp-name1=123
set prefix-aa-comp-name2=321
set prefix-aa-comp-name3=213
От имени компьютера требуется отделить префикс, имя компьютера и составить имя пользователя

Код: Выделить весь код
rem Отделяю префикс
set xx=%computername:˜0,3%

rem Отделяю имя компа

set yy=%computername:˜8,-2%

rem Составляю переменную передаю ее значение в переменную %pass%

call set pass=%aa-%xx%-%yy%%
Все шикарно когда call set pass=%%aa-%xx%-%yy%% выполняю в консоли, в переменную %pass% попадает содержимое переменной prefix-aa-comp-name1, но когда выполняю bat фаил в переменную попадает имя переменной. Поскажите, куда копать.)))

Отправлено: 15:09, 02-07-2018

 
x0r x0r вне форума

Забанен


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

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


ага, без call тоже норм.

Отправлено: 18:08, 03-07-2018 | #11



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

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


Аватара для YuS_2

Crazy


Contributor


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

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


Цитата alexx_core:
set aa-appname-prefix=123
set usrname=aa-appname-prefix
call set pass=%%usrname%%
echo %pass%
»
А я вот не понял совсем, на кой тут вообще такие сложности?
1. Присваиваем значение первой переменной
2. Присваиваем имя первой переменной во вторую переменную
3. Пытаемся сделать двойное раскрытие с присвоением в третью переменную!
А зачем?! В итоге всех действий получаем таки аналог этого:
Код: Выделить весь код
echo %aa-appname-prefix%
В чём сакральный смысл этих сложностей?

-------
scio me nihil scire. Ѫ

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:23, 03-07-2018 | #12

x0r x0r вне форума

Забанен


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

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


ЕЯПП , то данный пример был укороченный, дабы передать суть вопроса, которую не могли понять отвечающие. А у самого TS это все будет крутиццо в скрипте в каком-то цикле, чтоле... читать из файла, хз.

Отправлено: 18:37, 03-07-2018 | #13


Ветеран


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

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


Цитата YuS_2:
А я вот не понял совсем, »
«Третьим будешь?»
Цитата alpap:
короче ничего непонятно пока ... »
Цитата Iska:
Я тоже ничего не смог понять »

Отправлено: 19:08, 03-07-2018 | #14


Аватара для YuS_2

Crazy


Contributor


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

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


Цитата Iska:
«Третьим будешь?» »
Это да, телепатию развивать надо, однако!

-------
scio me nihil scire. Ѫ


Отправлено: 20:01, 03-07-2018 | #15


Новый участник


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

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


Попробую объяснить.))
Есть более 100 серверов на которых крутятся некие приложения. Требуется их настроить. Один из этапов настройки создание и запуск определенной службы от определенного пользователя. Пользователь для каждого компа индивидуален и создан заранее.

Для настройки запуска службы от определенного пользователя и нужна была эта котовасия.
Я сделал несколько топорно, но работает на ура.)
Я создал переменные из имен пользователей и присвоил им пароли, как значения. Мне нужно, чтоб скрипт автоматом собирал имя пользователя основываясь на имени компьютера и некой доп. информации, которое уже является переменной содержащей пароль и подставлял пароль в выражение.


Код: Выделить весь код
@echo on
setlocal EnableDelayedExpansion

set aa-appname-prefix=123    :: Имя пользователя и пароль (таких более ста)


:: Собираю имя пользователя
set prefix=%computername:˜0,3%
set appname=%computername:˜8,-2%

set usrname=aa-%appname%-%prefix%   :: Это собранное имя пользователя
set pass=!%usrname%!   :: Передаю пароль из переменной %usrname% в переменную %pass%
echo !pass!

pause
exit
Данный пример сильно упрощен, но для понимания этого достаточно.

Спасибо всем, кто принимал участие!!

Отправлено: 11:53, 04-07-2018 | #16



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Реализация функций длины переменной, выделение подстроки с параметрами в переменной. NiOl Скриптовые языки администрирования Windows 7 31-01-2019 19:58
CMD/BAT - [решено] Сравнение переменной цикла со строковой переменной NickM Скриптовые языки администрирования Windows 2 17-01-2017 10:28
CMD/BAT - [решено] В переменной содержится имя переменной opravdin Скриптовые языки администрирования Windows 3 28-01-2013 11:11
CMD/BAT - переменная durexx Скриптовые языки администрирования Windows 1 27-08-2011 10:18
CMD/BAT - [решено] Два файла - как одна переменная, переменная - как параметр taravasya Скриптовые языки администрирования Windows 6 16-02-2010 04:49




 
Переход