Запустите окно специальных папок

516
Steven Penny

Прочитав ответ, я узнал, что в некоторых папках есть особенность

USERPROFILE AKA C: \ Users \ Стивен SystemRoot AKA C: \ Windows 

Из поля Run вы можете получить доступ к любым их подпапкам. Например, ввод Documentsвведет C:\Users\Steven\Documents. Есть ли в других папках эта функция или ее можно добавить в папку?

6
Вы также можете создавать собственные ярлыки, кроме встроенных в Windows. Создайте каталог и поместите путь в системный оператор PATH, затем создайте ярлыки для любой папки, программы или файла, которые вы хотите, дайте им любое имя и поместите их в этот каталог. Открыв RUN и введя имя, которое вы дали ярлыку, вы попадете в папку или откроете файл или программу, на которую указывает ярлык. music2myear 9 лет назад 0

3 ответа на вопрос

3
harrymc

Как сказал Аракел, здесь есть две несвязанные особенности:

  1. Переменные среды, которые используются как %variable%, например,%USERPROFILE%
  2. Команды, которые вводятся без %...%, например documents.

На самом деле, первые - это просто макросы, которые имеют значения. Синтаксис %...%просто преобразует имя переменной в текст, и этот текст затем выполняется так, как если бы он был введен в поле «Выполнить».

Введенный текст сначала ищется в папках, указанных переменной среды PATH и в %USERPROFILE%. В этом случае весь введенный текст должен совпадать с именем папки. Примерами здесь являются «документы» для C:\Users\<user>\Documentsили «видео» для C:\Users\<user>\Videos.

Если папка с таким именем не была найдена, первое слово, введенное в поле, принимается за команду, а следующие - за параметры. Слова, содержащие разделители, такие как пробелы, должны быть заключены в кавычки.

Если введенное имя команды не совпадает с именем папки, Windows попытается найти исполняемый файл в ПУТИ с таким точным именем. Если у команды нет суффикса, Windows попытается использовать все исполняемые суффиксы, такие как .exeили .bat(и некоторые другие). Практически сотни имен команд могут быть введены таким образом.

Например, при вводе текста calcбудет запущен калькулятор Windows, который является исполняемым файлом C:\Windows\System32\calc.exe, поскольку он C:\Windows\System32находится в переменной PATH.


Можно создать свои собственные команды Run следующим образом:

  1. Win+ Rчтобы открыть диалоговое окно «Выполнить»
  2. Enter, %windir%чтобы открыть каталог Windows
  3. Alt+, F W Sчтобы открыть меню Файл, выберите пункт меню Новый, затем пункт меню Ярлык
  4. Пройдите мастер, чтобы создать ярлык для нужной программы или папки.
  5. Имя, которое вы даете ярлыку, - это то, что вы введете в поле «Выполнить», чтобы запустить программу.

Другой способ осуществляется через реестр (не рекомендуется). Microsoft называет это регистрацией приложений .

  1. Запустите Regedit и перейдите к следующему ключу:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths 
  2. Щелкните правой кнопкой мыши на App Pathsключе и выберите команду «Создать / Ключ».

  3. Дайте новому ключу имя из 2-8 символов, а затем .exe
  4. Измените значение, если (Default)элемент на полный путь к программе.

Например, этот пример файла реестра позволяет одному типу ieв поле «Выполнить» открыть Internet Explorer:

Windows Registry Editor Version 5.00  [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\ie.exe] @="C:\\Program Files\\Internet Explorer\\iexplore.exe" 
В отношении функции № 2 не совсем правильно утверждать, что * первое слово, введенное в поле, принимается как команда, а следующие - как параметры. * Например, в моей папке `% userprofile%` у меня есть папка по имени `Моя папка` (обратите внимание на пробел). Если в поле «Выполнить» я наберу «моя папка», откроется правильная папка. Я думаю, что ваше второе утверждение имеет преимущественную силу: * Если введенное имя команды совпадает с именем папки, эта папка будет открыта в проводнике **, даже если имя папки содержит пробелы. *** Twisty Impersonator 9 лет назад 0
@ Твисти: Вы правы - я исправил свой ответ. harrymc 9 лет назад 0
2
JosefZ

Окно запуска Windows пытается вызвать метод Shell.ShellExecute (операция по умолчанию зарегистрированного типа файла) для файла, указанного текстом в поле ввода, а именно в текущем каталоге, который является %USERPROFILE%!

Предположим, мы пишем MyLoc Setsздесь и нажимаем Enter.

Сначала слово MyLocдолжно быть командой. Поиски оболочки для исполняемого варианта, например MyLoc.com, MyLoc.exe, MyLoc.bat, MyLoc.cmd, ... в текущем каталоге, а затем в каталогах, указанных в %PATH%переменной окружения, то для \SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Myloc.exe ключа реестра в HKEY_CURRENT_USERи HKEY_LOCAL_MACHINEкрапивница. В крайнем случае, оболочка ищет MyLoc Setsпапки в тех же местах (кроме реестра). Ошибка файла не найдена ...

А теперь попробуйте Local Settings: не нашел исполняемый файл с именем Local, но нашел папку с этим именем в %USERPROFILE%! Таким образом, поскольку папка имеет зарегистрированный тип файла, а для операции по умолчанию для папки используется « Исследовать », то ее можно выполнить ShellExecuteметодом ...

Упомянутый вами метод Shell.ShellExecute не имеет ничего общего с программами на Си, в которые, скорее всего, написано поле «Выполнить». Возможно, вы имели в виду [функцию ShellExecute] (http://msdn.microsoft.com/en-us/library/ windows / desktop / bb762153% 28v = vs.85% 29.aspx), который, к сожалению, выглядит только в PATH. Переменная% USERPROFILE% доступна только для самой программы запуска, а не для ядра API Windows. Этот ответ не имеет никакого смысла. harrymc 9 лет назад 0
@ Harrymc, возможно, ответ не имеет для вас никакого смысла, но Windows (или Windows Explorer, или основной API, или любая другая часть Windows) ** ведет себя ** таким образом! Извините, я не так глубоко заглядываю в Windows; Мне это не нужно в этом случае ... Однако, я знаю, это не имеет ничего общего с функцией ShellExecute. JosefZ 9 лет назад 1
0
w17t

кажется, что окно запуска - это просто startкоманда с графическим /d %userprofile%интерфейсом и значением переключателя по умолчанию, которое задает путь к начальному каталогу.

как и любая другая команда, на которую она реагирует %path%, и %pathext%т. д. специальные переменные окружения

Более того, он понимает шаблон прямого открытия веб-страниц, например, ctrl+ r(или start) www.superuser.comоткрывает веб-сайт с приложением веб-браузера по умолчанию, так как знает, что на этот раз аргумент является URL

Интересная часть этих переменных окружения - это порядок элементов в списке, который они содержат, так как он важен для установки приоритета поиска и важен при поиске одноименных файлов или каталогов.

Поведение поля * Run * не является прямой заменой команды `START`. Например, вы не можете набрать из командной строки `Запустить мою подпапку` и заставить ее открыть папку с именем * Моя подпапка *. Вместо этого вы должны ввести `start" "" моя подпапка "` (необходим первый набор двойных кавычек.) Twisty Impersonator 9 лет назад 0
кавычки обязательны только в том случае, если имя ** подпапки ** содержит пробел (`ascii 32`); здесь начальный `" "` предназначен для определения заголовка окна консоли, так как `start` интерпретирует свой первый аргумент в кавычках как строку для определения заголовка w17t 9 лет назад 0
вы правы, первый набор кавычек требуется только в том случае, если имя подпапки содержит пробелы. Я хочу сказать, что в таком случае первый набор кавычек действительно * обязателен *, что делает синтаксис команды совершенно другим, когда используется `START` вместо диалогового окна * Run *. Таким образом, поле * Run * - это не просто версия GUI команды START. Twisty Impersonator 9 лет назад 0