Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/313: Рейтинг темы: голосов - 313, средняя оценка - 4.69
Джоуи
1081 / 643 / 240
Регистрация: 05.05.2015
Сообщений: 3,559
Записей в блоге: 2
1

Как создать ярлык файла

19.07.2015, 17:02. Показов 63784. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В общем, как создать ярлык файла (без разницы, можно лежащий в одном каталоге с батником, можно с жестким указанием пути к файлу, мне не нужен универсальный способ, любой подойдет). И можно ли сразу из батника задать горячие клавиши как в свойствах ярлыков из проводника задают?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.07.2015, 17:02
Ответы с готовыми решениями:

Как создать ярлык без ссылки на программу?

Как создать ярлык для открытия определенного сайта не браузером по умолчанию, а IE?
Добрый день, как реализовать ярлык на определенный сайт, который будет открываться не браузером по...

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

Нужен exe-файл, создающий на рабочем столе ярлык bat-файла с определённой иконкой
Все привет! Нужен файл exe, который бы создавал ярлык на рабочий стол пользователя (к примеру,...

15
10582 / 5545 / 864
Регистрация: 07.04.2013
Сообщений: 15,660
19.07.2015, 17:18 2
Лучший ответ Сообщение было отмечено Joey как решение

Решение

На сколько я знаю на чистом cmd нельзя.

Можно на VBS

Visual Basic
1
2
3
4
5
6
7
8
9
set WshShell = WScript.CreateObject("WScript.Shell" )
set oShellLink = WshShell.CreateShortcut("D:\Desktop\Shortcut.lnk" ) ' Где создается
oShellLink.TargetPath = "C:\Windows\System32\cmd.exe" ' Объект
oShellLink.Arguments = "" ' Аргументы запуска
oShellLink.WindowStyle = 1 ' Стиль окна: 1-Обычное; 3-Развёрнутое; 7-Свёрнутое
oShellLink.Description = "Shortcut Script" '  Комментарий
oShellLink.WorkingDirectory = "c:\windows\system32\"
oShellLink.Hotkey = "CTRL+SHIFT+F" ' Клавиши быстрого вызова
oShellLink.Save
3
3460 / 1998 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
19.07.2015, 18:31 3
Лучший ответ Сообщение было отмечено Joey как решение

Решение

Joey, из пакетного файла создать ярлык можно так:

1) запустить VBS-код с помощью "mshta.exe":
Windows Batch file
1
@mshta vbscript:Execute("Set x=CreateObject(""WScript.Shell"").CreateShortcut(""%USERPROFILE%\Desktop\Notepad.lnk""):x.TargetPath=""%windir%\notepad.exe"":x.HotKey=""CTRL+ALT+F"":x.Save():Close()")
;

2) запустить код PowerShell:
Windows Batch file
1
@powershell "$x=(New-Object -ComObject WScript.Shell).CreateShortcut('%USERPROFILE%\Desktop\Notepad.lnk');$x.TargetPath='%windir%\notepad.exe';$x.HotKey='CTRL+ALT+F';$x.Save()"
.


Ярлык к "Блокноту" будет создан на рабочем столе. Горячие клавиши будут назначены.
2
Джоуи
1081 / 643 / 240
Регистрация: 05.05.2015
Сообщений: 3,559
Записей в блоге: 2
19.07.2015, 20:33  [ТС] 4
А можно узнать ваше мнение насчет этого кода (это чистый bat/cmd или с примесью js или vba)?
0
10582 / 5545 / 864
Регистрация: 07.04.2013
Сообщений: 15,660
19.07.2015, 20:34 5
Цитата Сообщение от Joey Посмотреть сообщение
это чистый bat/cmd или с примесью js или vba
Видно же, что "с примесью"
0
Джоуи
1081 / 643 / 240
Регистрация: 05.05.2015
Сообщений: 3,559
Записей в блоге: 2
19.07.2015, 20:37  [ТС] 6
Очень похоже на то, что написал vavun, только мне показалось, что драгокас говорил про cmd код. Вот я и не допонимаю

Добавлено через 32 секунды
vavun, )) вы имеете ввиду, что это вообще не cmd?))

Добавлено через 1 минуту
Хорошо, что значат вот эти строки:
Windows Batch file
1
2
3
4
5
@set @x=0; /*
@cscript //nologo /e:jscript "%~f0"
@exit /b
 
*/
0
vavun
19.07.2015, 20:42
  #7
Призываю ComSpec
0
Джоуи
1081 / 643 / 240
Регистрация: 05.05.2015
Сообщений: 3,559
Записей в блоге: 2
19.07.2015, 21:56  [ТС] 8
В любом случае, спасибо за ответы. Сейчас пойду разбираться с кодом. Не люблю слепо копировать советы, стараюсь еще и разбираться)

Добавлено через 1 час 6 минут
vavun, большое спасибо, в твоем коде разобрался (в меру своих умственных способностей)) ), подмял под свои нужды, кое-что долепил и готово. Теперь перейду к коду ComSpec

Добавлено через 1 минуту
ComSpec, ну, первый вариант - это то же, что у vavuna, но лаконично, однако)

Добавлено через 1 минуту
Второе тоже, но PowerShell не помешает. Я, если честно, не понял, это средства самих скриптов, или они обращаются к винапи функциям, но для моих целей хватит. Спасибо, вопрос вроде как закрыт
0
Эксперт WindowsАвтор FAQ
17996 / 7697 / 892
Регистрация: 25.12.2011
Сообщений: 11,470
Записей в блоге: 16
20.07.2015, 13:55 9
Цитата Сообщение от Joey Посмотреть сообщение
Хорошо, что значат вот эти строки:
Там код для cmd. Но состоит из гибрида cmd+js. В процессе работы вызывается интерпретатор JScript (cscript.exe).
"%~f0" - полный путь к текущему батнику.
1
Джоуи
1081 / 643 / 240
Регистрация: 05.05.2015
Сообщений: 3,559
Записей в блоге: 2
20.07.2015, 21:05  [ТС] 10
Действительно, гибрид
0
31 / 40 / 6
Регистрация: 04.10.2014
Сообщений: 185
11.08.2016, 20:16 11
вот к примеру универсальное создание множества ярлыков относительно корневой директории
пользуйтесь на здоровье !) >>

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
@set @x=0; /*
@cscript /e:jscript "%~f0"
@exit */
oShell = new ActiveXObject("WScript.Shell");
myDir = oShell.CurrentDirectory;
uShortcut = oShell.CreateShortcut(oShell.SpecialFolders("Desktop") + "\\console_general.lnk");
uShortcut.TargetPath = myDir + "\\console_general.bat";
// uShortcut.Arguments = "";
uShortcut.WorkingDirectory = myDir;
uShortcut.HotKey = "CTRL+ALT+SHIFT+C";
// uShortcut.Description = "";
// uShortcut.IconLocation = "";
// uShortcut.WindowStyle = 1;       // Стиль окна: 1-Обычное; 3-Развёрнутое; 7-Свёрнутое
uShortcut.Save();
 
uShortcut = oShell.CreateShortcut(oShell.SpecialFolders("Desktop") + "\\console_general_pj.lnk");
uShortcut.TargetPath = myDir + "\\console_general_pj.bat";
uShortcut.WorkingDirectory = myDir;
uShortcut.HotKey = "CTRL+ALT+SHIFT+D";
uShortcut.Save();
 
uShortcut = oShell.CreateShortcut(oShell.SpecialFolders("Desktop") + "\\console_other.lnk");
uShortcut.TargetPath = myDir + "\\console_other.bat";
uShortcut.WorkingDirectory = myDir;
uShortcut.HotKey = "CTRL+ALT+SHIFT+S";
uShortcut.Save();
 
uShortcut = oShell.CreateShortcut(oShell.SpecialFolders("Desktop") + "\\operation.lnk");
uShortcut.TargetPath = myDir + "\\operation.bat";
uShortcut.WorkingDirectory = myDir;
uShortcut.HotKey = "CTRL+ALT+SHIFT+W";
uShortcut.Save();
2
0 / 0 / 1
Регистрация: 20.12.2016
Сообщений: 5
21.12.2016, 13:27 12
Проще всего - создать в папке с батником ярлык, а потом его просто вставить в нужное место

Например:

Windows Batch file
1
copy 123.lnk c:\windows\system32\1234.lnk
И все) Удачи!)
0
alpap
21.12.2016, 15:24
  #13

Не по теме:

OutNET,
а сварить борщ дистанционно - слабо?:)

0
7 / 7 / 0
Регистрация: 06.09.2014
Сообщений: 270
31.05.2017, 15:17 14
OutNET, путь в "Объекте" и "Рабочей папке" будет не тот и ярлык будет битый.
1
0 / 0 / 0
Регистрация: 27.06.2020
Сообщений: 20
04.07.2020, 02:09 15
Цитата Сообщение от ComSpec Посмотреть сообщение
Joey, из пакетного файла создать ярлык можно так:

1) запустить VBS-код с помощью "mshta.exe":
Windows Batch file
1
@mshta vbscript:Execute("Set x=CreateObject(""WScript.Shell"").CreateShortcut(""%USERPROFILE%\Desktop\Notepad.lnk""):x.TargetPath=""%windir%\notepad.exe"":x.HotKey=""CTRL+ALT+F"":x.Save():Close()")
;

Ярлык к "Блокноту" будет создан на рабочем столе. Горячие клавиши будут назначены.
Использовал данный вариант внутри скобок оператора IF () и программа вынесла следующие за этой строки за скобки. Пришлось отказаться от скобок в операторе IF и заменить их переходом GOTO. Но вот интересно, а можно было по другому решить эту проблему (в рамках средств языка командного процессора)?
0
0 / 0 / 0
Регистрация: 20.11.2018
Сообщений: 32
23.11.2020, 02:38 16
Всем привет, вот с толкнулся с проблемой: перенос расшареной папки...
Ситуэйнен- поставили новую "машину" (удаленно), дали место, и сказали работать в новом месте. Парк примерно 80 ПК. USERы все старенькие бабули (учебное заведение), вот и есть необходимость батником со старой папки своять ярлык на рабочий стол с ссылкой на новую папку. + необходимость ввести учетные данные (логин, пассворд).

Bash
1
copy 123.lnk %DESKTOP%123.lnk
причем сам 123.ink ссылается на новое расположение. CMD Будет лежать в старой папке рядом с 123.ink
0
23.11.2020, 02:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.11.2020, 02:38
Помогаю со студенческими работами здесь

Как запустить dial-up(модем 56кб) подключение(есть ярлык) и как его разорвать?
Добрый день. В виду отсутствия информации в поиске, прошу помочь с вопросом по batch.. Как...

Как создать ярлык exe файла на рабочий стол?
Как создать ярлык exe файла на рабочий стол, библиотеку using IWshRuntimeLibrary; я подключил

Создать ярлык для файла если неизвестно местонахождение файла ?
Здраствуйте. Подскажите, можно как-нибудь запустить файл не зная его местоположения ? можно вот...

Как создать ярлык?
Как создать ярлык средствами framework 2.0? Знаю, что есть ishell, но он только с 4.0, если память...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru