Посоветуйте прогу...
Select messages from
# through # FAQ
[/[Print]\]
Goto page 1, 2  Next  :| |:
Total Commander -> Программное обеспечение

#1: Посоветуйте прогу... Author: A.N.T. PostPosted: Thu Aug 03, 2006 12:36
    —
Вобщем мне нужно сделать такой инсталлятор... Что бы он:
1. Добавлял файлы в заданные директории
2. Добавлял ключи в реестр
3. Выполнял файл после распаковки
4. САМОУНИЧТОЖАЛСЯ!!!

Есть ли такая штука.. Мне это нужно для собственного использования, для автоматизации некоторых процессов.
Сейчас использую Nullsoft Installer и батник

Code:
@echo off
:del_loop
del my_inst.exe
if exist my_inst.exe goto del_loop
del this_file.bat


Хотелось бы другое что-нибудь, с батником как-то не очень красиво Smile
Посоветуйте пожалуйста что-нибудь....

#2:  Author: BatyaLocation: Москва, Россия PostPosted: Thu Aug 03, 2006 13:28
    —
Инсталлятор не знаю, но все перечисленное можно сделать скриптом.

#3:  Author: A.N.T. PostPosted: Sat Aug 05, 2006 09:30
    —
Неужто нет такой проги, или решения подходящего (хотя скрипт тоже решение, просто хотелось бы, одно целое) Shocked
Может есть тут знатоки NSIS? , просто он поддерживает кучу макросов, всяких скриптов которых в хелпе нет, может он self-delete умеет??? Ведь созданный им Uninstaller убивает сам себя Shocked Shocked

#4:  Author: VolniyLocation: Местный PostPosted: Sat Aug 05, 2006 16:03
    —
A.N.T. wrote:
Ведь созданный им Uninstaller убивает сам себя Shocked Shocked

Это не так! Uninstaller создает копию файла во временной папке, а та уже удаляет исходный файл. Это описано в документации.

#5:  Author: A.N.T. PostPosted: Sat Aug 05, 2006 17:00
    —
Quote:
Uninstaller создает копию файла во временной папке, а та уже удаляет исходный файл.


Понял, это даже в справке написано Smile


Люди подскажите в чём может быть проблема..
В NSIS есть макрос GetExeName..


Из справки:
Quote:
E.1.9 GetExeName
Get installer filename (with valid case for Windows 9X/Me).
Syntax:

${GetExeName} $var
Example:

Section
${GetExeName} $R0
; $R0="C:\ftp\program.exe"
SectionEnd


Как я понял этот макрос получает имя инсталлера Smile и привязывает к переменной $R0,
не пойму как этим пользоваться, вроде вроде бы всё правильно сделал, скомпилился инсталлер, в параметрах Унинсталлера написал delete $R0 но он не удаляет ничего, в чём проблема?

#6:  Author: МоторокерLocation: г. Пермь (читается Перьмь) PostPosted: Wed Aug 09, 2006 12:41
    —
Windows программы ведь не могут себя удалять. Чаще всего.

#7:  Author: A.N.T. PostPosted: Wed Aug 09, 2006 15:49
    —
2Моторокер

Ещё как могут Smile
http://www.catch22.net/tuts/selfdel.asp , где то видел русский вариант этой статьи...

#8:  Author: Lamer PostPosted: Wed Aug 09, 2006 18:12
    —
На sources.ru ты его видел,этот русский вариант Smile

#9:  Author: A.N.T. PostPosted: Wed Aug 09, 2006 18:56
    —
Народ подскажите плз как с помощью батника удалить файл(myprog.exe) в текущей директории -> т.е. где сам батник находится.
ToLamer
Quote:
Не уподобляйтесь fundukу.Пишите Майкрософт,а не Микрософт.И поменьше кидайте призывов.Laughing
funduk,привет большевикам Wink да ещё и с английским отливом. Smile
В тему подколол Laughing

#10:  Author: Lamer PostPosted: Wed Aug 09, 2006 19:13
    —
Строчка в батнике
Code:
del myprog.exe /q

где /q отключает перезапрос: "действительно ли Вы хотите удалить".


А это конкретная ссылочка на сурсах http://sources.ru/cpp/faqs/96.htm

#11:  Author: A.N.T. PostPosted: Wed Aug 09, 2006 20:05
    —
2Lamer
Quote:
Строчка в батнике

Code:
del myprog.exe /q


где /q отключает перезапрос: "действительно ли Вы хотите удалить".


Не до такой степени я и ламер, чтоб не знать этого Very Happy

Этот вариант мне не подходит вот почему:
Ставил xPize что то вроде темы для XP - тк вот она пофиксила в реестре параметры командной строки фон - вместо чёрного синий и т.д. и самое главное изменила путь по умолчанию к текущей папке, на C:\WINDOWS, таким образом, если я выполню del *.exe то все экзешники из %windir% удалятся Laughing, я стал жертвой делитаSmile.... Мне нужно, что бы например, создавалась переменная, в которой указывался б путь к текущей директории, ну и потом я выполнил что то вроде del %dir%\myprog.exe

А русскую статейку я видел тут http://deadbeef.narod.ru/work/articles/selfdel.htm

#12:  Author: Lamer PostPosted: Wed Aug 09, 2006 20:28
    —
По-моему ты слишком мудришь. Любая команда командного интерпретатора сначала пытается производить операции над файлами в директории,из которой была запущена и только если не находит,анализирует системную переменную окружения PATH. Т.е. ничего лишнего она тебе не удалит.Если сомневаешься, попробуй накидать в свою папку м папку Windows файлов типа *.bla и выполни del *.bla.
А зачем тебе вообще понадобилось пользоваться таким шаблоном *.exe? Почему не конкретно myprog.exe? Ну или списком ,если их несколько.
Ну и в конце концов можно просто прописать полный путь.Т.е. не del myprog.exe , a del c:\myfolder\subfolderofmyfolder\myprog.exe

#13:  Author: A.N.T. PostPosted: Wed Aug 09, 2006 20:41
    —
Спасибо и на этом...
Со *.exe просто привёл пример... Давно не помню зачем мне это было нужно....
А решение я уже нашел Cool

Code:
del %CD%myprog.exe

#14:  Author: StrangeRRor PostPosted: Wed Aug 09, 2006 20:45
    —
Предлагаю такое решение:
Code:
@echo off
set path=%~dp0
del %path%*.exe

Если хочется, можно добавить /q.
Переменная %0 в bat-файле соответствует нулевому аргументу командной строки, т.е. имени самого файла, %~d1-разворачивает %1 в букву диска, %~p1-разворачивает %1 в путь. %~dp1-разворачивает %1 в букву диска и путь. Таким образом, сочетание %~dp0 будет раскрыто в полный путь к каталогу, где находится сценарий.
З.Ы. Правда, при этом уничтожается и сам bat-файл.

#15:  Author: A.N.T. PostPosted: Wed Aug 09, 2006 20:57
    —
StrangeRRor

Твой способ не работает если папка, в которой находится батник названа русскими буквами или в имени имеются пробелы или слишком длинное имя....



Total Commander -> Программное обеспечение


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page 1, 2  Next  :| |:
Page 1 of 2

Powered by phpBB © 2001, 2005 phpBB Group