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

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

intersk 14-06-2011 09:36 1694058

Нужна программа которая в папку SendTo "закидывает" командный файл
 
Есть командный файл (cmd). Задача: на любой операционной системе при установке (например через инсталлятор) определяется папка SendTo и туда помещается файл cmd. (Потом можно будет его "натравливать" на папки)

Vadikan 14-06-2011 09:59 1694071

intersk, достаточно запаковать ваш скрипт в SFX архив http://oszone.net/3171 и добавить туда же скрипт, определяющий операционную систему и копирующий файл в нужное расположение.

Переношу в скрипты.

intersk 14-06-2011 10:35 1694094

Vadikan, для меня это не понятно.... Если можете делайте - я дам свой файл.

amel27 14-06-2011 11:03 1694112

Цитата:

Цитата intersk
для меня это не понятно »

пример батника для WinRAR,
для файла "inst.cmd" создаёт самораспаковывающийся (SFX) архив "inst.exe" в текущей папке:
Код:

set WHAT=inst.cmd
set INST=inst.exe

set ProfilePath=%%UserProfile%%
"%ProgramFiles%\WinRAR\rar.exe" a -ep -sfx "%INST%" "%WHAT%"
(echo TempMode
 echo Setup=%COMSPEC% /C COPY /Y "%WHAT%" "%%ProfilePath%%\SendTo"
 echo Silent=2
 echo Overwrite=1
)|"%ProgramFiles%\WinRAR\rar.exe" c "%INST%"


intersk 14-06-2011 12:01 1694142

Цитата:

Цитата amel27
для файла "inst.cmd" создаёт самораспаковывающийся (SFX) архив "inst.exe" в текущей папке: »

это для моего компьютера, а нужно чтобы на любом компьютере копирование файла происходило в SendTo независимо от операц.системы
я изменил параметры на
------------------------
;Расположенный ниже комментарий содержит команды SFX-сценария

Path=%UserProfile%\SendTo
......
--------------
теперь вроде то что нужно. Интересно на Vista и Seven сработает?

Iska 14-06-2011 12:18 1694151

Цитата:

Цитата intersk
а нужно чтобы на любом компьютере копирование файла происходило в SendTo независимо от операц.системы »

На VBScript, без проверок корректности:
Код:

Const CSIDL_SENDTO = &H09

WScript.CreateObject("Shell.Application").NameSpace(CSIDL_SENDTO).CopyHere WScript.Arguments.Item(0)

Полный путь к файлу, который нужно скопировать (кстати, а почему именно «помещать» туда сам файл, а не ярлык на него, как положено?) в «SendTo», указывается аргументом скрипта (равно можно просто перетащить файл на данный скрипт).

intersk 14-06-2011 12:28 1694160

Цитата:

Цитата Iska
почему именно «помещать» туда сам файл, а не ярлык на него »

это маленький командный файл, размером с ярлык).
А что делать с кодом VBScript - создать из него cmd ?

amel27 14-06-2011 12:29 1694161

Цитата:

Цитата intersk
нужно чтобы на любом компьютере »

исправил

пришлось через CMD - WinRAR считает путь только относительно ProgramFiles

Iska 14-06-2011 12:46 1694173

Цитата:

Цитата intersk
А что делать с кодом VBScript…? »

Сохранить в файл в кодировке ANSI (1251) с расширением «.vbs».

amel27 14-06-2011 12:55 1694176

Цитата:

Цитата amel27
пришлось через CMD »

хотя нет, такой вариант тоже вроде работает, не смотря что в документации к WinRAR явно не сказано, что он поддерживает подстановки в параметрах:
Код:

set WHAT=inst.cmd
set INST=inst.exe

set ProfilePath=%%UserProfile%%
"%ProgramFiles%\WinRAR\rar.exe" a -ep -sfx "%INST%" "%WHAT%"
(echo Path=%%ProfilePath%%\SendTo
 echo Silent=2
 echo Overwrite=1
)|"%ProgramFiles%\WinRAR\rar.exe" c "%INST%"


intersk 14-06-2011 13:03 1694183

Я пошел по другому пути, создал самараспаковывающийся архив.
Задача ClearUDA.cmd поместить в ProgramFiles, а я ярлык на него в SenTo
---------------------------
;Расположенный ниже комментарий содержит команды SFX-сценария

Path=%PROGRAMFILES%
Overwrite=1
Title=Очистка
Text
{
В меню Отправить (SendTo) будет создан ярлык ClearUDA.
}
Shortcut=ClearUDA.cmd, %UserProfile%\SendTo, ClearUDA, ClearUDA,
------------------------
но ярлык не создается.....Видимо потому что WinRar может только в 4 места установить ярлык (раюочий стол, меню, автозагрузка и ...)

amel27 14-06-2011 16:03 1694300

Цитата:

Цитата intersk
но ярлык не создается »

может как-то так:
Код:

Path=ClearUDA
Overwrite=1
Shortcut=D,ClearUDA.cmd,"..\SendTo",ClearUDA,ClearUDA,

P.S. у пользователя должны быть права на создание папки/файла в %ProgramFiles%

intersk 15-06-2011 09:22 1694708

тему закрыть можно - я создал инсталлятор с помощью Advanced_Installer.
Всем спасибо за помощь и идеи!


Время: 05:19.

Время: 05:19.
© OSzone.net 2001-