Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Как указать CD батника если путь к CD папке находиться в реестре? (http://forum.oszone.net/showthread.php?t=281463)

DoroViska 26-04-2014 14:36 2343330

Как указать CD батника если путь к CD папке находиться в реестре?
 
Один батник запускает exe(путь к каторому находиться в реестре) но этот exe пишет что не найден фаил загрузки. exe это пишет если не нашол в своей директории фаил rot.re . потому-что батник прописывает %cd% в той папке в которой находиться. как указать %cd% запуска exe если путь к %cd% находиться в реестре под HCLM\software\star4net\DAYZ параметр Install Dir .... ?

вот исходник запуска из реестра
Код:

@echo off
chcp 1251>nul
for /f "tokens=2* delims=        " %%i in ('reg query "HKLM\software\Wow6432Node\star4net\DAYZ" /v "Launcher"^| findstr /i \.exe') do (start "" "%%~j")


Habetdin 26-04-2014 20:37 2343492

DoroViska, с помощью модификаторов, описанных в справке к команде for:
Код:

Операции подстановки ссылок на переменные команды FOR
также расширены. Допускается применение следующих
синтаксических конструкций:

%~I                - из переменной %I удаляются обрамляющие кавычки (")
%~fI                - переменная %I расширяется до полного имени файла
%~dI                - из переменной %I выделяется только имя диска
%~pI                - из переменной %I выделяется только путь к файлу
%~nI                - из переменной %I выделяется только имя файла
%~xI                - из переменной %I выделяется расширение имени файла
%~sI                - полученный путь содержит только короткие имена
%~aI                - переменная %I расширяется до атрибутов файла
%~tI                - переменная %I расширяется до даты /времени файла
%~zI                - переменная %I расширяется до размера файла
%~$ПУТЬ:I        - проводится поиск по каталогам, заданным в
                переменной среды ПУТЬ, и переменная %I
                заменяется на полное имя первого найденного
                файла.  Если переменная ПУТЬ не определена или
                в результате поиска не найден ни один файл,
                то этот модификатор заменяется на пустую
                строку.

При объединении нескольких операторов можно получить
следующие результаты:

%~dpI                - переменная %I раскрывается в имя диска и путь
%~nxI                - переменная %I раскрывается в имя файла и его
                расширение
%~fsI                - переменная %I раскрывается в полный путь с
                короткими именами
%~dp$ПУТЬ:I        - проводится поиск по каталогам, заданным в
                переменной среды ПУТЬ, и переменная %I
                раскрывается в имя диска и путь к первому
                найденному файлу.
%~ftzaI                - переменная %I раскрывается в строку, подобную
                выдаваемой командой DIR

Можно получить адрес папки из полного пути и перейти в нее с помощью команды cd:
Код:

@echo off
chcp 1251>nul
for /f "tokens=2* delims=        " %%i in ('reg query "HKLM\software\Wow6432Node\star4net\DAYZ" /v "Launcher"^| findstr /i \.exe') do (cd /d "%%~dpj" && start "" "%%~j")


Sphinx114 27-04-2014 00:40 2343607

Можно и без cd:
Код:

@echo off
chcp 1251>nul
for /f "tokens=2* delims=        " %%i in ('reg query "HKLM\software\Wow6432Node\star4net\DAYZ" /v "Launcher"^| findstr /i \.exe') do (start "" /d"%%~dpj" "%%~j")


DoroViska 27-04-2014 10:37 2343688

Sphinx114, Habetdin, Спасибки вам огромное. !!!!


Время: 21:15.

Время: 21:15.
© OSzone.net 2001-