Вопрос или проблема
Мы придумали сценарий, в котором нам нужно использовать файл ярлыка (.lnk
), который находится на рабочем столе, чтобы запустить приложение для устройства без экрана (т.е. без ручного вмешательства).
Можно ли его запустить из командной строки?
Если вы используете двойные кавычки вокруг ваших “длинных имен файлов.lnk” и имеете соответствующие привилегии, оно запустится. Кавычки нужны, когда в длинных именах файлов есть пробелы.
Например, "C:\Users\Sunny\Start Menu\Programs\XBMC\xbmc.lnk"
открывает XBMC. То же самое справедливо для окна Выполнить Win+R "путь и имя файла.lnk"
, Enter
START "" filename.lnk
должно сработать
Пока нет exe с тем же именем, что и ярлык, вы можете опустить .lnk, так что просто START "" filename
Эти ответы все не решают проблему. У меня действительно есть решение.
Есть простой ответ на этот вопрос.
Используйте переменную PATHEXT и добавьте .LNK в список. Добавьте .URL, если хотите.
Навсегда после этого файлы LNK будут запускаться ТОЧНО КАК любые другие EXE. Вам даже не нужно включать .LNK при их вызове.
Если вы хотите, чтобы путь был правильным при запуске одного из них, удалите строку “путь к цели” из свойств ярлыка, и вы сможете передавать относительные пути к LNK. Например, “notepad++ somefile.txt”, когда вы находитесь в каталоге.
Если вы положите папку в путь после этого, вы можете просто сбросить ярлыки в нее, чтобы упростить выполнение задач без засорения вашего пути мусором. Добавление пути для каждого третьего, пятого или десятого человека действительно замедлит вашу систему, и это не будет. Насколько сильно замедлит? Я не знаю, но ничего не дается бесплатно.
Вышеупомянутые решения не работали для меня в 2017 году, поэтому я немного поэкспериментировал.
Оказалось, что Windows (по крайней мере, 10) действительно различает ярлыки, которые ссылаются на локальные пути, и ярлыки, которые являются URL-адресами.
Я обнаружил, что
- локальные пути используют суффикс
.lnk
- URL-подобные пути имеют суффикс
.url
Таким образом, ярлык на https://superuser.com/
будет иметь суффикс .url
, в то время как ярлык на C:\Windows
или на специальные местоположения, такие как Панель управления
, будет иметь суффикс .lnk
.
Если вы хотите выполнить ярлык, просто введите shortcut.suffix
в командной строке, где .suffix
– это суффикс в соответствии с приведенным выше правилом. Вы должны сначала перейти в cd
в папку, содержащую ваш ярлык, или ввести полный путь к файлу. В вашем случае
%userprofile%\Desktop\shortcut.suffix
введенный в диалоговое окно запуска (вызванное с помощью Win + R
) или командную строку, сделает свое дело.
Windows и его неудобства.
Сначала найдите расположение ярлыка, с которого вы запускаете оболочку cmd.exe. Щелкните на ярлыке правой кнопкой мыши и выберите “Свойства”. Посмотрите на вкладку “Общие” и скопируйте значение “Расположение:”.
Используйте ярлык, чтобы запустить окно сброса.
START "" "C:\Users\lit\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\StartMenu\cmd.exe.lnk" /K CD /D "%CD%" & EXIT
Если вы пытаетесь открыть файл ярлыка с командой в реестре, вышеуказанные ответы не сработают.
Однако решение простое – добавьте флаг /c
:
cmd.exe /c C:\PathToShortcut\Example.lnk
Если вы вместо этого хотите запустить файл .exe в другой папке из командной строки, используя ярлык:
Решение, которое мне помогло, было следующим:
- щелкните правой кнопкой мыши -> создать -> Ярлык
- Введите расположение:
C:\Windows\System32\cmd.exe /k [путь к .exe]
- Дайте ему подходящее имя
- щелкните правой кнопкой мыши -> свойства, измените “Запуск в” на текущий каталог
- для запуска введите [имя].lnk
-
Сначала создаем папку с именем “Shortcuts_Apps”
-
Добавьте путь к папке “Shortcuts_Apps” в переменные среды PATH
-
Добавьте “.LNK” в список переменных среды PATHEXT
-
Скопируйте ярлык исполняемого файла в папку “Shortcuts_Apps”, например “ProgramName.exe.lnk”
Теперь мы можем переименовать “ProgramName.exe.lnk” в “ProgramName.lnk”, чтобы открывать его просто по имени
C:\Shortcuts_Apps>dir
29/12/2024 16:58 521 ProgramName.exe.lnk
C:\Shortcuts_Apps>rename ProgramName.exe.lnk ProgramName.lnk
C:\Shortcuts_Apps>ProgramName
Ответ или решение
Запуск ярлыков из командной строки в Windows 7 может быть необходим при автоматизации задач на устройствах без пользовательского интерфейса. Для выполнения этой задачи существуют различные методы, которые я опишу ниже. Эти методы позволяют избежать лишней работы и сделать процесс более эффективным.
Способы Выполнения Ярлыков (.lnk) из Командной Строки в Windows 7
-
Использование команды
START
:- Вы можете запустить ярлык, используя команду
START
. Обязательно заключите путь к файлу в двойные кавычки, особенно если в пути присутствуют пробелы. - Пример:
START "" "C:\Users\Sunny\Desktop\Application.lnk"
- Если вы уверены, что нет другой программы с таким же именем, можно опустить расширение файла:
START "" Application
- Вы можете запустить ярлык, используя команду
-
Изменение переменной окружения
PATHEXT
:- Добавьте расширение
.LNK
к переменнойPATHEXT
, что позволит системе воспринимать ярлыки так же, как исполняемые файлы (EXE). - После этого можно запускать ярлык без указания его расширения:
C:\Users\Sunny\Desktop>Application
- Добавьте расширение
-
Использование
cmd.exe
с флагом/c
:- Если вам необходимо выполнить ярлык из реестра или в специфическом контексте, попробуйте использовать флаг
/c
при вызовеcmd.exe
:cmd.exe /c "C:\PathToShortcut\Application.lnk"
- Если вам необходимо выполнить ярлык из реестра или в специфическом контексте, попробуйте использовать флаг
-
Создание отдельной папки для ярлыков:
- Создайте папку, например,
Shortcuts_Apps
, и добавьте её в переменную окруженияPATH
. - Поместите туда необходимые ярлыки и используйте их названия для запуска:
C:\Shortcuts_Apps>Application
- Создайте папку, например,
-
Создание нового ярлыка для запуска:
- Используйте стандартный мастер создания ярлыков Windows. Установите путь до
cmd.exe
с ключом/k
, указывая путь до необходимого исполняемого файла. - Настройте свойства ярлыка для правильного запуска из текущей директории.
- Используйте стандартный мастер создания ярлыков Windows. Установите путь до
Преимущества этих подходов заключаются в возможности гибкой настройки и автоматизации запуска приложений без графического интерфейса пользователя. Это значительно ускоряет работу с системами, где нет доступа к привычному десктопу.
На этом завершаю своё объяснение. Если у вас возникнут дополнительные вопросы, обращайтесь.