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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка Windows 2000/XP/2003 (http://forum.oszone.net/forumdisplay.php?f=32)
-   -   [решено] Как добавить на рабочий стол ярлык с параметрами? (http://forum.oszone.net/showthread.php?t=54395)

dendra 27-09-2005 20:05 359166

Как добавить на рабочий стол ярлык с параметрами?
 

boss911 27-09-2005 23:24 359270

dendra

При создании ярлыка в SFX архиве, просто после того обьекта для которого будет создаватса ярлык, дописуеш нужный тебе параметр! Вот пример как это сделано у меня и все работатет:
Код:

Shortcut=P, "r_server.exe" /start, "Remote Administrator", "", "Запуск Remote Administrator"

dendra 28-09-2005 00:46 359302

Только не в моём случае. Вот параметр: /I=".\Profiles\Prof\main.ini" /F=".\Profiles\Prof\ftp.ini"

Создаем sfx архив с таким параметром:
Shortcut=D, "totalcmd.exe" "/I="".\Profiles\Prof\main.ini"" /F="".\Profiles\Prof\ftp.ini""", "", "Total_XP", "Total_XP"

получаем ярлык с таким содержимым поля "объект":
"C:\Program Files\totalcmd.exe \I="\Profiles\Prof\main.ini" \F="\Profiles\Prof\ftp.ini""

Мало того что рар с какого-то перепугу меняет правый слэш(/I) на левый(\I), так он ещё заключает всю строку в кавычки и в поле "рабочая папка" пишет:
"c:\Program Files\totalcmd.exe \I="\Profiles\Prof\main.ini" \F="\Profiles\Prof"

Вобщем тяжёлый случай. В принципе устроило бы и простое копирование готового ярлыка на рабочий стол, только КАК это сделать средствами rar.sfx? Видимо придётся положить ярлык в $OEM$\$Docs\All Users\Desktop\. Другого способа пока не вижу. Только некрасиво это как-то.

Vadikan 28-09-2005 04:21 359317

dendra
Так положите готовый ярлык в SFX, а по окончании распаковки запустите пакетный файл, который скопирует ярлык. http://oszone.net/display.php?id=3171#winrar 3й скриншот

dendra 28-09-2005 13:53 359472

Уважаемый Vadikan, благодарю, всё получилось.

Если кто-нибудь столкнётся с подобной проблемой, вот её решение.

1. Создаём ярлык (xxx.lnk) и прописываем в него необходимые параметры запуска программы;

2. Создаём пакетный файл (copy.cmd) следующего содержания:
---
copy "xxx.lnk" "%ALLUSERSPROFILE%\Рабочий стол\*.*"
---
Примечание: файл copy.cmd должен быть сохранён в oem/dos кодировке.
Если Windows английский, вместо \Рабочий стол\ пишем \Desktop\

3. Копируем файлы xxx.lnk и copy.cmd в папку с программой, создаём rar.sfx архив с необходимыми параметрами, в том числе со строчкой: copy.cmd в закладке "Общие" в поле "Выполнить после распаковки".
\\\
Излишне подробно получилось, но мало ли...

dendra 28-10-2005 13:21 368462

Вышеупомянутый способ неудобен, если устанавливать программу на разноязычные версии Windows. Приходится менять в cmd файле "Desktop" на "Рабочий стол" или наоборот. В связи с этим, вопрос: есть ли универсальная переменная для рабочего стола? Типа %systemdrive% для системного диска?

Vadikan 29-10-2005 00:35 368607

dendra
Цитата:

есть ли универсальная переменная для рабочего стола? Типа %systemdrive% для системного диска?
%userprofile%\desktop
%allusersprofile%\desktop

dendra 29-10-2005 15:44 368705

К сожалению, этот способ не подходит для Русского дистрибутива Windows. При попытке исполнения команды:

copy "totalcmd.lnk" "%ALLUSERSPROFILE%\desktop\Total Commander XP.lnk"

получаем сообщение:

c:\Program Files\Total Commander XP>copy "totalcmd.lnk" "C:\Documents and Settings\All Users\desktop\Total Commander XP.lnk"
Системе не удается найти указанный путь.
Скопировано файлов: 0.

Но, если вместо \desktop\ написать \рабочий стол\ - скопируется.

Может быть есть возможность создать переменную %desktop% самостоятельно и присвоить ей значения "desktop" и "рабочий стол"?

Vadikan 30-10-2005 01:51 368790

Ну сделайте пакетный файл типа
Код:

IF EXIST %ALLUSERSPROFILE%\Desktop" xcopy -y "totalcmd.lnk" "%ALLUSERSPROFILE%\Desktop\Total Commander XP.lnk"
GOTO END
IF EXIST %ALLUSERSPROFILE%\Рабочий Стол" xcopy -y "totalcmd.lnk" "%ALLUSERSPROFILE%\Рабочий Стол\Total Commander XP.lnk"
exit


dendra 30-10-2005 22:01 368982

Цитата:

Ну сделайте пакетный файл типа
:) Уговорили.
Все работает, благодарю.

Oleg_Sch 31-10-2005 03:13 369049

Если на WinRAR'е свет клином не сошелся - может попробовать мой модуль для 7-Zip'a http://forum.oszone.net/showthread.php?t=51547
Только что попробовал такую комбинацию:
Код:

Shortcut="D, {totalcmd.exe}, {/I=\".\Profiles\Prof\main.ini\" /F=\".\Profiles\Prof\ftp.ini\"}, {}, {Total_XP}, {Total_XP}"
Параметры прописались нормально

dendra 31-10-2005 12:13 369132

В свете такого отличного sfx модуля для 7zip, WinRAR клином вышибается из моей системы. Собственно WinRAR и держался только из-за возможности создавать более-менее продвинутые sfx архивы. Олег, большое спасибо за Вашу работу!

EasyFrag 15-04-2006 16:35 428183

Для создания ярлыков (и много еще для чего) удобна программа nircmd. В ней испльзуются переменные на подобии системных, так что отпадает необходимость угадывать где у нас рабочий стол (в "Desktop" или в "Рабочий стол").
К сожалению ссылку на саму прогу потерял. Нашел ее (прогу) вроде на этом форуме.

Если кому надо, могу выложить.

Vadikan 16-04-2006 00:26 428280

EasyFrag
Это уже было. Я добавил ссылки в первый пост.

4zz 15-01-2007 07:17 536101

Vadikan
Цитата:

Ну сделайте пакетный файл типа

Код:
IF EXIST %ALLUSERSPROFILE%\Desktop" xcopy -y "totalcmd.lnk" "%ALLUSERSPROFILE%\Desktop\Total Commander XP.lnk"
GOTO END
IF EXIST %ALLUSERSPROFILE%\Рабочий Стол" xcopy -y "totalcmd.lnk" "%ALLUSERSPROFILE%\Рабочий Стол\Total Commander XP.lnk"
exit
Спасибо за помощь,но вот в чем вопрос-ярлыков у меня много-получается
столько команд...
У меня есть идея-посоветуйте насколько она верна-
1.Создаю SFX архив со всеми ярлыками,обзываю его LINK и указываю путь %userprofile%\Рабочий стол\
2.Создаю SFX архив со всеми ярлыками,обзываю его LINKS и указываю путь %userprofile%\Desktop\
3.Создаю пакетный файл типа
IF EXIST %ALLUSERSPROFILE%\Desktop" RUN LINKS.exe"
GOTO END
IF EXIST %ALLUSERSPROFILE%\Рабочий Стол" RUN LINK.exe"
exit
Дальше прошу помощи потому,что ничего не получается ... :)

zuckij 15-01-2007 09:00 536130

Я тут почитал, и не понял для чего создавать пакетный файл, РАР и так всё хорошо делает и на русской, и на не русской создаёт ярлыки:
Цитата:

;Расположенный ниже комментарий содержит команды SFX-сценария
Path=Total Commander
Silent=1
Overwrite=1
Shortcut=D, "Totalcmd.exe", "", "Totalcmd.exe", "Total Commander" Shortcut=T, "Totalcmd.exe", "", "Totalcmd.exe", "Total Commander"
Мне нужно было чтоб он загружался автоматически, и на столе. Для этого добавляем в архив файлы, создаём SFX во вкладке дополнительно выбираем где поместить ярлыки, путь для распаковки пишим имя папки в которую будет распакована программа галочку ставим создать в Program Files, и всё.
PS. т.к. долго не кто не брался делать с ним аддон, для UpdPack-XPSP2, сделал следующее архив в архиве, не граммотно зато работает и ставит командера с моими настройками. полученый SFX запаковываю опять в SFX и ещё рег файлик, cmdow.exe и батник который выполнит то что мне надо. Путь для распаковки временная папка, скрыть всё, выполнить run.bat батник:
Код:

cmdow @ /HID 
@echo off   
SET=%~dp0 
SET=%wdir:~0,-1%   
regedit.exe /S Ghisler.reg 
echo. 
start /wait Tcmd.exe 
echo. 
exit

И тихо так без шума, без пыли он становится на Т-13. Непосредствено в самой программе заложено, создания ярлыков аж 4-х штук в разных местах

4zz 24-01-2007 12:19 540498

Вопрос был,вобщем то,вот в чем-
Я коллекционирую понравившиеся мне программы,которые работают без инсталяции(т.е сначала инсталлируются потом я забираю папку проги из Program Files). Создал в Program Files папку «BEZINSTALA» и бросаю туда мои любимые проги,создав для прог ярлыки с универсальными путями (%systemdrive%\Program Files\...) на рабочем столе.
Само собой папку «BEZINSTALA» я храню,на случай краха, для себя на флешке.
Так вот при установке ,например через WPI,создал SFX архив который распаковывается в Program Files\ BEZINSTALA, ну и осталось положить ярлыки на рабочий стол(готовые, целая куча),мне легче их туда просто распаковать.Я использовал совет VADIKANа- создал cmd :
Цитата:

IF EXIST "%ALLUSERSPROFILE%\Desktop" xcopy "LINK\*.*" "%ALLUSER-SPROFILE%\Desktop"
GOTO END
IF EXIST "%ALLUSERSPROFILE%\Рабочий Стол" xcopy "LINK\*.*" "%ALLUSERSPROFILE%\Рабочий Стол"
Exit
Только он (VADIKAN)пропустил первые кавычки, а я глупо скопировал, потому и мучился ;)

Теперь готовые ярлыки копируются из папки "LINK" на рабочий стол в любом случае независимо как он обзывается :)
Еще-некоторые ярлыки я разбил на группы-папки (украсив или обозначив их разными иконками(программа Folderico)) и поместил их в соответсвующие папки в папке "LINK",само собой после распаковки я имею готовый,упорядоченый,красивый вариант :)
Кстати!Многие программы которые обсуждаются здесь(в автоматической установке)я использую именно без инстала.Прикрепляю файл со списком своих прог.И файлы с рисунками стола

zuckij 24-01-2007 18:01 540727

4zz вопрос стоял как добавить ярлык, вот тебе и отвечали как добавить не кучу а один. И докопались бы до истины значительно раньше

4zz 05-02-2007 11:21 545866

zuckij
Цитата:

И докопались бы до истины значительно раньше
ПРОШУ помощи!
Я был не прав:
Цитата:

IF EXIST "%ALLUSERSPROFILE%\Desktop" xcopy "LINK\*.*" "%ALLUSERSPROFILE%\Desktop"
GOTO END
IF EXIST "%ALLUSERSPROFILE%\Рабочий Стол" xcopy "LINK\*.*" "%ALLUSERSPROFILE%\Рабочий Стол"
Exit
Не едет!Я проверял на английской версии и все было ОК,но вот вчера поставил русскую и глухо как в танке,подскажите где ошибка :(

Vadikan 05-02-2007 23:48 546209

4zz
FAQ конечно читали уже, да?

4zz 06-02-2007 22:25 546603

Vadikan
Вот так всегда-толькоб отписаться. ;)
Конечно FAQ читал,и если имеется ввиду кодировка DOS-866 - все равно глухо.
А проблема осталась на русской версии:
Цитата:

IF EXIST "%ALLUSERSPROFILE%\Desktop" xcopy "LINK\*.*" "%ALLUSERSPROFILE%\Desktop"
GOTO END
IF EXIST "%ALLUSERSPROFILE%\Рабочий Стол" xcopy "LINK\*.*" "%ALLUSERSPROFILE%\Рабочий Стол"
Exit
НЕ ЕДЕТ ! :(

Vadikan 06-02-2007 23:05 546616

4zz
А если
Код:

IF EXIST "%ALLUSERSPROFILE%\Рабочий Стол" xcopy "LINK\*.*" "%ALLUSERSPROFILE%\Рабочий Стол\*.*" /y /q /s
И проверьте как у вас отрабатывает IF EXIST - что возвращает.

4zz 06-02-2007 23:13 546620

Vadikan
Цитата:

И проверьте как у вас отрабатывает IF EXIST - что возвращает.
Никаких признаков,но!
РЕШИЛ проблему:
install.cmd:
Цитата:

IF EXIST "%ALLUSERSPROFILE%\Desktop" xcopy "LINK\*.*" "%ALLUSERSPROFILE%\Desktop"
start install2.cmd
и второй :
install2.cmd:
Цитата:

IF EXIST "%ALLUSERSPROFILE%\Рабочий Стол" xcopy "LINK\*.*" "%ALLUSERSPROFILE%\Рабочий Стол"
exit
Теперь все едет на русской версии,на английской проверю завтра :)

Английская тоже едет

4zz 19-02-2007 12:01 552355

Наши гуру молчат,но есть,оказывается, самый простой ,легкий и удобный способ добавить комплект ярлыков на рабочий стол несмотря на языковую принадлежность операционки-это самораспаковывающийся архив от 7z который понимает путь- %CommonDesktop% и никаких проблем... :)

Белтон 16-03-2008 23:13 761846

Подскажите знатоки, я тупо копирую несколько папок с файлами в Program Files, и хочю чтоб при входе в систему ярлыки этих программ были на рабочем столе, как сделать ярлык на рабочем столе из Program Files? способами батника конечно!


Время: 14:30.

Время: 14:30.
© OSzone.net 2001-