|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] не работает set в esle |
|
CMD/BAT - [решено] не работает set в esle
|
Ветеран Сообщения: 508 |
Профиль | Отправить PM | Цитировать все привет. есть код
::@echo off ::mode con:cols=100 lines=80 set /P cb="enter name : " if %cb%==t ( set cbFullName="termserver" ) else ( set cb0=cb0 echo %cb0% set cbFullName=%cb0%%cb% echo %cbFullName% ) query user /server:%cbFullName% | sort echo. set /p usersession= Enter the session ID: mstsc /v:%cbFullName% /multimon /shadow:%usersession% /control /noConsentPrompt set cb0=cb0 echo %cb0% set cbFullName=%cb0%%cb% echo %cbFullName% не присваивает и не выводит результат. что не так? |
|
Отправлено: 13:32, 28-12-2018 |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать Цитата chek:
Вот Ваши скрипт, насколько понял работает. ::@echo off ::mode con:cols=100 lines=80 set /P cb="enter name : " if %cb% ==t (set cbFullName="termserver") else (set cb0=cb0 echo %cb0% set cbFullName=%cb0%%cb% echo %cbFullName% ) query user /server:%cbFullName% | sort echo. set /p usersession= Enter the session ID: mstsc /v:%cbFullName% /multimon /shadow:%usersession% /control /noConsentPrompt |
|
Отправлено: 15:30, 28-12-2018 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 508
|
Профиль | Отправить PM | Цитировать нет, не работает. да и как первое эхо поймет, что нужно вывести только %cb0%, а не всю строку?
верно, теневое управление сеансами пользователей. |
Отправлено: 16:25, 28-12-2018 | #3 |
Ветеран Сообщения: 2708
|
Профиль | Отправить PM | Цитировать |
------- Последний раз редактировалось megaloman, 28-12-2018 в 16:42. Отправлено: 16:31, 28-12-2018 | #4 |
Ветеран Сообщения: 508
|
Профиль | Отправить PM | Цитировать спасибо, работает.
а какая ошибка в моем первоначальном? |
|
Отправлено: 16:59, 28-12-2018 | #5 |
Ветеран Сообщения: 2708
|
Профиль | Отправить PM | Цитировать Вот Ваш вариант, но рабочий.
@Echo Off
cls
SetLocal EnableExtensions EnableDelayedExpansion
set /P cb="enter name : "
if %cb%==t (
set cbFullName="termserver"
echo !cbFullName!
) else (
set cb0=cb0
echo !cb0!
set cbFullName=!cb0!!cb!
echo !cbFullName!
)
pause
Проанализируйте выполнение вот этого кода: @Echo Off cls Set /A i=1 Set Out=Тра ля ля Echo До If Out=%Out% If %i% EQU 1 ( Set Out=куку равно 1 Echo If i=%i% Внутри If Out=%Out% ) Else ( Set Out=куку не равное 1 Echo If i=%i% Внутри If Out=%Out% ) Echo После If Out=%Out% pause В принципе, если вести себя аккуратно и не совать Echo внутрь If, то конкретно ваш код можно написать: |
------- Последний раз редактировалось megaloman, 28-12-2018 в 17:52. Отправлено: 17:38, 28-12-2018 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата chek:
Цитата:
if Содержимое_переменной_окружения_cb==t ( set cbFullName="termserver" ) else ( set cb0=cb0 echo set cbFullName=Содержимое_переменной_окружения_cb echo ) Что делать — использовать отложенное раскрытие переменных окружения (сообщение коллеги megaloman выше), использовать двойное раскрытие по call (годится не для всех случаев). |
||
Отправлено: 17:40, 28-12-2018 | #7 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
PowerShell - Set-AddressBookList не удается выполнить | tarasov.evgeny | Скриптовые языки администрирования Windows | 13 | 09-04-2015 09:43 | |
[решено] Не работает bcdedit.exe /set {current} nx AlwaysOff | GreyAngel | Windows Server 2012/2012 R2 | 2 | 02-05-2013 23:02 | |
CMD/BAT - [решено] Не работает команда set /a | mark23 | Скриптовые языки администрирования Windows | 7 | 04-04-2013 17:16 | |
CMD/BAT - [решено] Криво работает сочетание for и set | Boa Soft | Скриптовые языки администрирования Windows | 4 | 16-06-2011 16:37 | |
Прочие - Web-камера не работает. Ошибка 80004005 cannot set frame rate for preview | Raspytnik | Microsoft Windows 7 | 3 | 17-03-2010 22:41 |
|