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

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

Ответить
Настройки темы
CMD/BAT - поиск файла по путям, заданным в произвольной переменной окружения

Аватара для CyberMuesli

Старожил


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

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


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

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

setlocal enabledelayedexpansion

set VName=FARHOME
echo for /d %%i in ("far.exe") do echo %%~$!VName!:i
echo for /d %%i in ("far.exe") do echo %%~$FARHOME:i

for /d %%i in ("far.exe") do echo %%~$!VName!:i
for /d %%i in ("far.exe") do echo %%~$FARHOME:i
goto :eof

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


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

 

Ветеран


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

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


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

Отправлено: 22:17, 24-06-2012 | #2



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

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


Аватара для CyberMuesli

Старожил


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

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


Цитата Iska:
Скажите, что Вы хотите получить в итоге»
Надо найти некий файл, при этом искать его по путям, которые заданы в произвольной переменной окружения. Файл произвольный, для примера far.exe Имя переменной окружения произвольное, для примера FARHOME. В примере файл ищется, если FARHOME явно прописана в коде: %%~$FARHOME:i. Написать универсальный код не удается: раскрытие переменной VName в ее значение FARHOME не работает в конструкции %%~$!VName!:i


Цитата Iska:
Не ясно, зачем нужно использовать подобное. »
Пример сделан для наглядности, а не для практического применения. Он показывает (два echo), что команда для for формируется правильно в обоих случаях, но результаты for разные, не работает раскрытие переменной VName в ее значение FARHOME. Однократный запуск примера снял бы все вопросы. Привожу результаты:


C>test.bat
for /d %i in ("far.exe") do echo %~$FARHOME:i
for /d %i in ("far.exe") do echo %~$FARHOME:i
Режим вывода команд на экран (ECHO) отключен.
C:\Program Files\Far\Far.exe

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


Последний раз редактировалось CyberMuesli, 25-06-2012 в 13:10.


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


Ветеран


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

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


Что мешает в этом гипотетическом примере «раскрыть» переменную окружения предварительно, перед входом в разбор; наподобие:
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sVarName=FARHOME
call set sVar=%%%sVarName%%%
rem Или
rem set sVar=!%sVarName%!

for %%i in (far.exe) do echo %%~$sVar:i

endlocal
exit /b 0
?

Цитата CyberMuesli:
Однократный запуск примера снял бы все вопросы. »
Ан нет. Можно запускать хоть сотню раз, коллега. Однако ж, сие не даст ответ на заданные мною вопросы. Для этого нужны именные пояснения (которые Вы дали постом выше).
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:15, 25-06-2012 | #4


Аватара для CyberMuesli

Старожил


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

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


то, что нужно, спасибо.

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


Отправлено: 14:23, 25-06-2012 | #5



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] поиск файла по маске и запись этого имени в переменную ___dima___ Скриптовые языки администрирования Windows 20 18-06-2017 01:46
CMD/BAT - поиск в переменной спецсимволов vosya Скриптовые языки администрирования Windows 1 05-01-2012 01:27
CMD/BAT - [решено] Созд.*.txt по имени файла, с перемещением *.txt и файла в папку с именем файла. OSArev Скриптовые языки администрирования Windows 2 30-01-2011 11:58
ассоциация файла с заданным приложением Sergey Ugryumov Microsoft Windows NT/2000/2003 2 10-10-2007 14:46
модификация имени переменной (JavaScript) Crowner Вебмастеру 2 03-05-2006 11:04




 
Переход