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

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

Ответить
Настройки темы
CMD/BAT - двойное раскрытие

Аватара для CyberMuesli

Старожил


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

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


Изменения
Автор: CyberMuesli
Дата: 24-06-2012
В переменной VName содержится имя другой переменной окружения. Чтобы получить значение переменной, чье имя содержится в переменной VName, можно использовать такой синтаксис:

set VNAME=FARHOME & rem Но мы этого не знаем
...
set VValue=!%VNAME%!


Как быть, если последнюю строчку надо написать в цикле, в котором %VARNAME% раскроется всего один раз перед циклом. По идее нужно что-то типа такого

Как быть, если последнюю строчку надо написать в цикле или внутри IF, где %VARNAME% раскроется всего один раз перед скобками. По идее нужно что-то типа такого

set VValue=!!VNAME!!

Но так не работает. Как быть?

-------
Кибер Мюсли


Отправлено: 21:51, 24-06-2012

 

Аватара для CyberMuesli

Старожил


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

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


Цитата Foreigner:
if defined %1.!%1.Count! (
set VNAME=%1.!%1.Count!
echo VNAME=!VNAME!
call set VNAME=%%!VNAME!%%
echo VNAME=!VNAME!
) »
А так не работает.

MyArray.1=Right value 1
MyArray.Index=1
--- Outside brackets is Ok:
VNAME=MyArray.1
VNAME=Right value 1
---
VNAME=Invalid value
--- Inside brackets does not working
VNAME=MyArray.1
VNAME=%MyArray.1%

Цитата Iska:
Ключевые слова — «с этого» и «в первом же». »
не вижу проблемы в том. чтобы привести поясняющий пример в ответ на вопрос

-------
Кибер Мюсли


Отправлено: 12:27, 25-06-2012 | #21



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

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


Пользователь


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

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


Цитата CyberMuesli:
Всё. Решение найдено. Для двойного раскрытия надо делать так
for %%i in (!VNAME!) do set VNAME=!%%i! »
А у меня не работает ((
Вот батник, который берет адрес рабочего стола из реестра, кладет его в DesktopPath (там получается конструкция вида "%USERPROFILE%\Desktop")
И все что я хочу, это переместить один файл по адресу из этой переменной, но не работает двойное раскрытие..

Код: Выделить весь код
:: Установка portable версии в нужную папку
@echo on >nul
    cls
    setlocal enabledelayedexpansion	
    chcp 866 >nul   

:: INIT
    set InstallPath=%USERPROFILE%\UserSoft
	mkdir %InstallPath% >nul

:: путь к рабочему столу
    FOR /F "skip=2 tokens=2,*" %%A IN ('reg.exe query "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "Desktop"') DO set "DesktopPath=%%B"
    FOR %%i in (!DesktopPath!) do set DesktopPath=!%%i!
		
    move OperaPortable\OperaMy.lnk %DesktopPath%
    REM move /y OperaPortable %InstallPath%\
Фотодоказательство

Последний раз редактировалось PATRI0T, 29-12-2020 в 03:26.


Отправлено: 03:07, 29-12-2020 | #22


Пользователь


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

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


А, все, нашел решение.
Надо просто сделать так
Код: Выделить весь код
call set DesktopPath=%DesktopPath%
И усё.. Пошел я спать.. )

Отправлено: 03:30, 29-12-2020 | #23


Ветеран


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

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


Цитата PATRI0T:
Надо просто сделать так »
PATRI0T, вот здесь call как раз не нужен.

Отправлено: 21:39, 29-12-2020 | #24



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
.NET - Программное раскрытие DataGridViewComboBoxCell Delirium Программирование и базы данных 1 28-02-2011 17:55
двойное уменьшение частоты FSB K@kTuS Непонятные проблемы с Железом 2 20-04-2010 06:31
CMD/BAT - [решено] Раскрытие имени файла во вложеном For dARKest Скриптовые языки администрирования Windows 7 17-07-2009 00:15
Основы C++ | Раскрытие цикла while (s--) { ... }; Skrip Программирование и базы данных 3 20-08-2005 20:35
Двойное копирование файла с FTP. :( BlackMonk Хочу все знать 3 13-02-2005 09:08




 
Переход