Войти

Показать полную графическую версию : [решено] Нужна программа которая в папку SendTo "закидывает" командный файл


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

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

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

intersk
14-06-2011, 10:35
Vadikan, для меня это не понятно.... Если можете делайте - я дам свой файл.

amel27
14-06-2011, 11:03
для меня это не понятно »пример батника для 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
для файла "inst.cmd" создаёт самораспаковывающийся (SFX) архив "inst.exe" в текущей папке: » это для моего компьютера, а нужно чтобы на любом компьютере копирование файла происходило в SendTo независимо от операц.системы
я изменил параметры на
------------------------
;Расположенный ниже комментарий содержит команды SFX-сценария

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

Iska
14-06-2011, 12:18
а нужно чтобы на любом компьютере копирование файла происходило в 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
почему именно «помещать» туда сам файл, а не ярлык на него » это маленький командный файл, размером с ярлык).
А что делать с кодом VBScript - создать из него cmd ?

amel27
14-06-2011, 12:29
нужно чтобы на любом компьютере »исправил

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

Iska
14-06-2011, 12:46
А что делать с кодом VBScript…? »
Сохранить в файл в кодировке ANSI (1251) с расширением «.vbs».

amel27
14-06-2011, 12:55
пришлось через 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
Я пошел по другому пути, создал самараспаковывающийся архив.
Задача 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
но ярлык не создается »может как-то так:Path=ClearUDA
Overwrite=1
Shortcut=D,ClearUDA.cmd,"..\SendTo",ClearUDA,ClearUDA,P.S. у пользователя должны быть права на создание папки/файла в %ProgramFiles%

intersk
15-06-2011, 09:22
тему закрыть можно - я создал инсталлятор с помощью Advanced_Installer.
Всем спасибо за помощь и идеи!




© OSzone.net 2001-2012