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

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

BKPB 21-06-2017 11:33 2746302

Самоудаление скрипта после выполнения
 
Помогите решить такой вопрос.
Суть такова, файлы распаковываются в папку, далее скрипт запускает .bat.
Как сделать так,что бы скрипт запустив .bat сам удалился.

Iska 21-06-2017 11:46 2746307

BKPB, Вам нужна куча срабатываний антивирусов?!

BKPB 21-06-2017 12:08 2746319

Нет, просто у меня есть .exe он распаковывает папку с программой в ProgramFiles,
в ней находится .cmd который запускается с помощью скрипта, что бы не выводились окна .cmd.
Мне нужно, чтобы этот скрипт после запуска .cmd сам удалялся,
то есть, чтобы не оставались не нужные файлы в папке с программой.
Конечно ещё лучше бы было, сделать как нибудь чтобы .cmd отрабатывал скрыто без показа окон,
тогда бы скрипт вообще бы не понадобился.

Iska 21-06-2017 12:13 2746326

BKPB, начинайте осваивать нормальные инсталляторы. Временные файлы извлекаются во временный каталог пользователя или машины. Если раздражают окна консоли — используйте от начала и до конца WSH или средства самого инсталлятора. Делать нагромождение Пелиона на Оссу — моветон.

greg zakharov 21-06-2017 12:20 2746333

Iska, вот есть у Вас программа о пару бинарников, так что же, непременно создавать инсталлятор вместо sfx-архива, который бы выпюнул все во временную папку и запустил нужные сценарии преконфигурирования? Однако! И потом, что Вы страх на человека наводите, дескать антивирус будет орать. Вот, скажем, пример бата, который сам по себе удаляется:
Код:

@echo off&2>nul goto&rundll32 advpack.dll,DelNodeRunDLL32 "%~f0"
Упакуйте его в sfx и что Вы увидите? Ни один антивирус не станет ругаться. Хотя, казалось бы, код смахивает на деструктивный. Более скажу, на некоторых вполне себе безобидных батах можно заставить антивирусы выбрасывать окошки "атаке алярм". И уж если говорить по существу, вот есть NSIS, казалось бы, понтовый инсталлятор; где-то, эдак лет шесть, если не больше, проскакивала информация, что на нем был написан троян, поражающий MBR.

BKPB 21-06-2017 12:24 2746337

Смотрите у меня всего два файла,
файл программы и файл .cmd ( "%~dp0usbdlm.exe" -register )
который регистрирует и запускает этот файл,
они не извлекаются во временную папку, а сразу в ProgramFile.

Подскажите можно решить мой вопрос или мне забыть о таком решении?

greg zakharov 21-06-2017 12:28 2746339

BKPB, не проще ли в посэкзекьюшене sfx'а так и прописать mybin.exe -register & start "" mybin.exe и не париться с батом?

BKPB 21-06-2017 12:34 2746340

greg zakharov,
Сейчас попробую, просто этот .cmd идёт с программой и при его запуске появляется окно где сообщается что программа зарегистрирована и запущена.

greg zakharov, выходит такое сообщение:

CmdLn is '-register & start'
USBGLM -register registers USBDLM.exe as Win32 service and starts the service
USBDLM -deregister deregisters the USBDLM service
USBDLM -debug starts it as normal program (Admin previleges required)

greg zakharov 21-06-2017 13:07 2746365

И? Что должно из этого телепатировать?

Iska 21-06-2017 13:13 2746369

Цитата:

Цитата greg zakharov
Iska, вот есть у Вас программа о пару бинарников, так что же, непременно создавать инсталлятор вместо sfx-архива »

А что, с его созданием нынче есть какие-нибудь трудности?

Цитата:

Цитата greg zakharov
и запустил нужные сценарии преконфигурирования? »

Когда сценарии конфигурирования начинают приобретать форму «нагромоздим вот это сюда, а потом ещё вот это сверху, а чтоб оно не отображалось — ещё вот это, а потом чтоб не рухнуло — вот это» — надо явно что-то менять в Датском королевстве, независимо от того, используется ли самораспаковывающийся архив, або инсталлятор. Просто в последнем случае это сделать возможно, в первом — нет.

Цитата:

Цитата greg zakharov
И? Что должно из этого телепатировать? »

А как же :). Мы хотя бы добрались до программы. Видимо, это: USB Drive Letter Manager - USBDLM. Спрашивается, нахрена зачем только всё это нужно, коли там есть msi.

BKPB, рассказывайте всё. С показом кода. С описанием, что, как и зачем у Вас делается.

BKPB 21-06-2017 13:20 2746374

Нашёл решение. http://forum.oszone.net/post-1498878.html

Скрытый текст
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "Name.cmd" & Chr(34), 0
Set WshShell = Nothing
WScript.Sleep(3000)
Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.DeleteFile WScript.ScriptFullName, 0


WScript.Sleep(3000) - задержка на 3 секунды перед удалением

greg zakharov 21-06-2017 13:50 2746382

Iska, еще раз - пара бинарников. Впрочем, Вы, должно быть, знаете толк в извращениях не видите разницу между пулеметом и мухобойкой (или Вы предпочитаете клейкую ленту, дескать, муха к ней приклеится сама как-нибудь?). Ну, да ладно.
Цитата:

Цитата Iska
Когда сценарии конфигурирования начинают приобретать форму...

Ооо, если не хотите лешиться волос на голове, тогда не трогайте UNIX системы.
Цитата:

Цитата Iska
зачем только всё это нужно, коли там есть msi.

Если желаете ответ в Вашей же манере: msi можно распаковать :)

Iska 21-06-2017 14:01 2746386

greg zakharov, любите Вы поспорить ни о чём на пустом месте.

Цитата:

Цитата greg zakharov
Ооо, если не хотите лешиться волос на голове, тогда не трогайте UNIX системы. »

Видимо, уже где-то, когда-то, зачем-то трогал [Iska застенчиво поглаживает лысину]. Как будем обсуждать инсталляцию под Unix — тогда и поговорим о сравнительных механизмах.

greg zakharov 21-06-2017 14:04 2746389

Iska, в данном случае высказывается лишь точка зрения, а не затевается спор на "пустом месте".


Время: 13:22.

Время: 13:22.
© OSzone.net 2001-