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

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Передача пути через переменную в NSIS

Ответить
Настройки темы
Передача пути через переменную в NSIS

Новый участник


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

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


Доброй ночи. Раньше не имел дела с командной строкой, но сейчас решил сделать себе маленький скрипт тихой установки для небольшой подборки программ.
Код: Выделить весь код
@echo off 
set mydir="D:\Program Files\"
pause
IF NOT EXIST %mydir%AntRenamer antrenamer2_install.exe /VERYSILENT /DIR=%mydir%AntRenamer
IF NOT EXIST %mydir%XnView XnView-win.exe /VERYSILENT /DIR=%mydir%XnView
IF NOT EXIST %mydir%Notepad++ npp.6.1.6.Installer.exe /S /D=%mydir%Notepad++
IF NOT EXIST %mydir%Paint.NET Paint.NET.3.5.10.Install.exe /auto "TARGETDIR=%mydir%Paint.NET"
В общем для Inno (XnView,AntRenamer) всё нормально устанавливается, если указана переменная. Notepad++ и Paint.NET не устанавливаются, если путь указан с использованием переменной. Если указать напрямую:
/D=D:\Program Files\Notepad++ и "TARGETDIR=D:\Program Files\Paint.NET", то всё работает нормально. (((
Подскажите пожалуйста, как поправить?

Отправлено: 01:20, 22-08-2012

 

Аватара для K.A.V.

Ленивый кусок мяса


Contributor


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

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


Цитата Dezmont777:
Подскажите пожалуйста, как поправить? »
1. Уберите кавычки из переменной "mydir"
2. Заключите в кавычки путь определяемой директории

Код: Выделить весь код
set mydir=C:\Program Files\
IF NOT EXIST "%mydir%Notepad++" "npp.6.1.6.Installer.exe" /S /D=%mydir%Notepad++

-------
[Справочник по командам Windows] -- [Справочник по NSIS] -- [SFX Creator - для создания SFX архивов]


Отправлено: 11:05, 22-08-2012 | #2



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

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


Новый участник


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

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


K.A.V., спасибо большое, но Ваш вариант не работает. Если Вы тестировали свой вариант, и он работает, то это потому, что по умолчанию NP++ устанавливается на системный диск. И если в параметре /D присутствуют какие-нибудь ошибки, то он автоматом ставится в C:\Program Files\.

Отправлено: 20:00, 22-08-2012 | #3


Аватара для K.A.V.

Ленивый кусок мяса


Contributor


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

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


Dezmont777, у вас был полный путь, я тестировал с таким же, вот и всё

Что мешает указать переменную программной директории?

Код: Выделить весь код
@echo off
set mydir=%ProgramFiles%\
IF NOT EXIST "%mydir%Notepad++" "npp.6.1.6.Installer.exe" /S /D=%mydir%Notepad++

-------
[Справочник по командам Windows] -- [Справочник по NSIS] -- [SFX Creator - для создания SFX архивов]


Отправлено: 20:06, 22-08-2012 | #4


Новый участник


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

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


K.A.V., может вы меня немного неверно поняли, объясню ещё раз.
Без ключа /D программа Notepad++ автоматически ставится в %ProgramFiles% или %ProgramFiles(x86)% (переменные среды, равные С:\Program Files\ или C:\Program Files(x86) соответственно).
Мне же необходимо в переменной указать путь, на НЕсистемный диск, например: D:\Program Files\ . Это значение я задаю через переменную %mydir%.

Следующий вариант всё равно устанавливает NP++ в C:\Program Files(x86). Как только не пытался я выставлять кавычки, всё равно не работает.
Код: Выделить весь код
@echo off
set mydir=D:\Program Files\
IF NOT EXIST "%mydir%Notepad++2" npp.6.1.6.Installer.exe /S /D=%mydir%"Notepad++2"
Нормально работает только такой вариант:
Код: Выделить весь код
@echo off
pause
set mydir=D:\
IF NOT EXIST "%mydir%Program Files\Notepad++2" "npp.6.1.6.Installer.exe" /S /D=%mydir%"Program Files\Notepad++2"
Всё дело в пробеле. Может его можно как-нибудь экранировать или ещё что-нибудь сделать? Я чувствую, истина где-то рядом
P.S. Ещё раз повторюсь, 1-ый раз столкнулся с batниками, так что не ругайте, если сильно туплю...

Отправлено: 00:27, 23-08-2012 | #5


Аватара для K.A.V.

Ленивый кусок мяса


Contributor


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

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


Вложения
Тип файла: rar TEST.rar
(20.0 Kb, 24 просмотров)

Цитата Dezmont777:
Всё дело в пробеле. »
А мне кажется, всё дело в кривости пакета инсталлятора, к которому вы обращаетесь

Посмотрите в архиве bat файл с моим примером кода
+ в архиве EXE файл написанный на NSIS
После запуска bat файла, данный небольшой EXE на NSIS покажет директорию "установки" (переданную в параметр /D) и параметры запуска инсталлятора

-------
[Справочник по командам Windows] -- [Справочник по NSIS] -- [SFX Creator - для создания SFX архивов]

Это сообщение посчитали полезным следующие участники:

Отправлено: 00:47, 23-08-2012 | #6


Новый участник


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

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


K.A.V., понятно. Спасибо Вам большое Сам бы ни за что на косяк разработчиков не подумал....

Отправлено: 01:06, 23-08-2012 | #7



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Передача пути через переменную в NSIS

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Добавить в реестр переменную именно как переменную %var% а не как ее значение NoIZz Скриптовые языки администрирования Windows 3 13-08-2012 21:52
CMD/BAT - [решено] Не подхватывает заданную переменную для пути defor6 Скриптовые языки администрирования Windows 2 26-03-2012 08:18
CMD/BAT - [решено] передать переменную из файла в другой через call csusha Скриптовые языки администрирования Windows 2 22-09-2010 19:32
Разное - [решено] Автоматизация добавления пути в переменную среды Path SANIOK_AV Microsoft Windows 2000/XP 8 18-03-2010 16:26
[решено] сохранение вывода консольных команд в переменную не через файл andr_mozg AutoIt 2 03-08-2009 12:52




 
Переход