Доступ в BAT к переменной среды начинающейся с %1 #371949


#0 by Gluk
Есть переменная среды %1CBasePath%, в батнике первые символы "%1" воспринимается как параметр. Как можно обмануть?
#1 by skunk
объяви другую переменную
#2 by Gluk
не вариант
#3 by skunk
почему?
#4 by Дядя Васька
может %% какой-нить?
#5 by Cap_1977
Переименуй переменную.
#6 by Gluk
не вариант
#7 by Cap_1977
Тогда долбись.
#8 by Дядя Васька
еще кавычки иногда спасают...
#9 by Sj
Лучше скажи, для чего тебе эту переменную надо использовать?
#10 by Gluk
(1,3,5,7,9) уже есть эта переменная на куче удаленных компов. Нада написать батнег который бы использовал ее
#11 by Cap_1977
"%<Число>" - стандартное обращение к параметру запуска батника. Эта тожа самое что пытаться объявить переменную "Если".
#12 by Sj
может быть тебе в батник передавать %1, чтобы имя переменки осталось без изменений ? или не прокатит?
#13 by skunk
непрокатит
#14 by Sj
вызывать батник с параметром %1CBasePath%, а в батнике использовать %1 ?
#15 by skunk
неа
#16 by Sj
а у меня прокатило test.bat %Temp% в test.bat echo %1
#17 by skunk
ты сделай переменную 1CPath ... и попробуй
#18 by Sj
жестоко
#19 by Ковычки
setlocal ENABLEDELAYEDEXPANSION set 1CBasePath=123 echo !1CBasePath!
#20 by Sj
тоже сработало
#21 by skunk
D:>setlocal ENABLEDELAYEDEXPANSION   D:>echo !1CBasePath! ECHO is on.
#22 by Sj
а куда делось: set 1CBasePath=123  ? у меня нормально отработало
#23 by Ковычки
вопрос про пакетник а если надо в cmd то cmd /v
#24 by skunk
не надо траляля
#25 by skunk
она заданна переменной среды
#26 by Ковычки
Microsoft Windows [Версия 6.0.6001] (C) Корпорация Майкрософт, 2006. Все права защищены. C:UsersОлег>set 1CBaseBath=123 C:UsersОлег>echo !1CBasePath! 123 C:UsersОлег>
#27 by Ковычки
тогда запускай cmd /v а в пакетнике, без второй строчки без cmd /v см
#28 by skunk
Олег значение уже задано ... так что set 1CBaseBath ... не взлетает
#29 by Sj
я задал 1spath в переменных среды, перегрузился и запустил батник test как test %1spath% и мне вывело значение 1spath
#30 by Sj
а ты перегрузился ?
#31 by skunk
так случилось ... только можно и без запуска второго cmd обойтись
#32 by skunk
ты что переменой 1spath присвоил?
#33 by Ковычки
яж сказал, что ненадо сет, тут для примера
#34 by Sj
в значении я написал c: esting
#35 by Sj
ты перегрузись и попробуй батник setlocal ENABLEDELAYEDEXPANSION echo !1CBasePath!
#36 by Gluk
спасибо ALL, помогло: setlocal ENABLEDELAYEDEXPANSION SET X=!1CBasePath! copy c:XYZ.txt %x%
#37 by Sj
а так не катит, что ли ? copy c:XYZ.txt !1CBasePath!
#38 by Ковычки
да ладно, скунк не будет скунком если не поспорит, а это он умеет
#39 by Ковычки
да и кой чево и в деле понимает.
#40 by Gluk
можно
#41 by Ковычки
только отключай когда явно не нужна отложенная обработка setlocal DISABLEDELAYEDEXPANSION а то при сложных циклах и "если" можешь наколоться, хотя часто полезно
#42 by Gluk
написано работает только в текущем батнике, в нем кроме копирование ничего не будет. спасибо.
#43 by skunk
я к не имею
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С