В Windows есть ли способ найти все ярлыки для данного файла / приложения? Это то, что я надеюсь в конечном итоге выполнить программно.
5 ответов
findstr /ism notepad.exe \*.lnk
findstr.exe поставляется в комплекте с Windows начиная с XP, если не раньше. Он живет в c:\windows\system32.
- / I указывает поиск без учета регистра
- / s определяет рекурсивный поиск по убыванию в подпапках
- / m указывает «отображать только имя файла при обнаружении совпадений». Без этой опции findstr будет выплевывать кучу транслируемого в ascii двоичного мусора
notepad.exe является целью ярлыка, замените его на нужный вам исполняемый файл.
\*. lnk неявно разделяется на две части: «\» указывает корень поиска и «* .lnk» указывает файлы для поиска.
Извините, я не могу спросить вас, что такое программирование env. вы используете Тем не менее, я знаю об этой ссылке COM Script Host Windows.
http://msdn.microsoft.com/en-us/library/xk6kst2k(VS.85).aspx
Кроме того, я не думаю, что когда-либо говорил, что это упомянуто в документации, но если вы хотите "прочитать" ярлык, вы используете тот же WshShell.Команда CreateShortcut, чтобы "открыть" файл ярлыка, а затем просто вызвать переменную.TargetPath, чтобы получить значение.
Я также видел некоторые ссылки на то, как это сделать в PowerShell, хотя это выглядело даже более сложным, чем эти примеры.
Откройте меню / кнопку "Пуск" и введите: type: *.lnk
в поле поиска / запуска внизу. Нажмите "увидеть больше результатов" синим цветом, теперь чуть выше.
Откроется новое окно проводника. Измените представление файла на "Подробно".
Щелкните правой кнопкой мыши строки "заголовок" для каждой категории и добавьте « Link target
» в показанные поля (вам, вероятно, нужно нажать "еще" и найти ее в алфавитном списке)
Теперь нажмите на строку заголовка Link target
для сортировки по целевому объекту Link и найдите все файлы Windows-ярлыков, которые указывают на целевой файл.
Это должно показать все варианты флагов командной строки, так как вы сортируете в алфавитном порядке по целевому пути.
Вы можете искать * .lnk файлы, которые содержат путь или имя исполняемого файла.
Например: ищите файлы * .lnk, которые содержат notepad.exe
Я пытался использовать Windows 7 search notepad.exe kind:*.lnk
и не мог заставить его работать все время. Я думаю, что это может иметь проблемы с неиндексированными каталогами. Я попробовал некоторые изменения настроек, и если я был близко, я заставил это работать, но если я пошел в корень диска, я не заставил это работать.
Мне повезло с использованием UltraEdit, но я уверен, что есть другие (бесплатные) текстовые редакторы, которые будут искать каталоги / подкаталоги.
Конечно, в зависимости от того, насколько уникален ваш поиск и имя программы / папки, вы можете получить ложные срабатывания. Но это должно найти все ярлыки для цели, которую вы искали, что у вас есть права на просмотр и чтение. (т. е. пользователь может иметь его на своем рабочем столе, а у вас нет разрешения на просмотр рабочего стола этого пользователя.)
Надеюсь это поможет.
РЕДАКТИРОВАТЬ: я только что нашел TextCrawler, я не пробовал его, но он может выполнить поиск, который я описал.
Сочетания клавиш для программ Microsoft: http://www.microsoft.com/enable/products/keyboard.aspx
Этот URL-адрес охватывает:
- Все операционные системы Windows вернулись к Windows Server 2003.
- Microsoft Office Suite (и все программы в нем) 2003, 2007 и 2010
- Internet Explorer 6, 7, 8
- Windows Media Center, Windows Media Player 11 и 12.
И если вы хотите найти их для конкретной программы, просто введите название программы вместе с номером версии и сочетаниями клавиш.
Например: Mozilla Firefox 3.6 keyboard shortcuts