Подтвердить что ты не робот

Выполнять быстрые клавиши, такие как программы

Пример. У вас есть ярлык s до SomeProgram в текущем каталоге.

В cmd.exe вы можете ввести s, и он запустит программу.

В PowerShell введите s:

The term 's' is not recognized as a cmdlet, function, operable program, or script file. Verify the term and try again.

Если вы наберете s.lnk или SomeProgram, он просто запустит программу.

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

4b9b3361

Ответ 1

В моей системе Vista, набрав S, не будет запускаться файл lnk, если у меня нет переменной окружения PATHEXT, установленной с .lnk в списке. Когда я делаю. S будет работать в cmd.exe, и я должен сделать. \S в powershell.

Ответ 2

Вы также можете вызвать ярлык, используя командлет "invoke-item". Например, если вы хотите запустить "internet explorer.lnk", вы можете ввести следующую команду:

invoke-item 'Internet Explorer.lnk'

Или вы также можете использовать псевдоним

ii 'internet explorer.lnk'

Еще одна интересная вещь заключается в том, что вы можете сделать "invoke-item t.txt", и он автоматически откроет все, что было обработчиком по умолчанию для файлов *.txt, например, записной книжки.

Примечание. Если вы хотите выполнить приложение app.exe в текущем каталоге, вы должны фактически указать путь, относительный или абсолютный, для выполнения. ".\app.exe" - это то, что вам нужно было бы ввести для выполнения приложения.

Ответ 3

После добавления ;.LNK в конец моей переменной среды PATHEXT я могу теперь выполнять ярлыки даже без предшествующей нотации ./. (Спасибо, bruceatk!)

Я также был вдохновлен предложением Стивена создать небольшой script, который автоматически сглаживает все ярлыки в моей PATH (хотя я планирую придерживаться более простого решения;).

$env:path.Split( ';' ) | 
  Get-ChildItem -filter *.lnk | 
  select @{ Name='Path'; Expression={ $_.FullName } }, 
         @{ Name='Name'; Expression={ [IO.Path]::GetFileNameWithoutExtension( $_.Name ) } } | 
  where { -not (Get-Alias $_.Name -ea 0) } | 
  foreach { Set-Alias $_.Name $_.Path }

Ответ 4

Я не верю, что ты можешь. Возможно, вам лучше сгладить обычно используемые команды в script, которые вы вызываете из своего профиля script.

Пример -

Set-Alias ​​np c:\windows\notepad.exe

Затем у вас есть короткое, легко печатаемое имя из командной строки.

Ответ 5

Во-первых, ярлык не является "s", это "s.lnk". Например. вы не можете открыть текстовый файл (скажем, с помощью блокнота), набрав "t", когда имя "t.txt":) Technet говорит

Переменная окружения PATHEXT определяет список расширений файлов проверяется Windows NT при поиске для исполняемого файла. Значение по умолчанию PATHEXT:.COM;.EXE;.BAT;.CMD

Вы можете использовать точечный источник, как описано другими, или вы также можете использовать символ вызова "&". Это означает, что PS обрабатывает вашу строку как нечто исполняемое, а не только текст. Это может быть более важным в script.

Я бы добавил, что вы должны передать какие-либо параметры OUTSIDE из кавычек (этот бит мне раньше), обратите внимание, что "-r" не находится в цитируемой строке, а только exe.

& "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe" -r | out-null

Ответ 6

Вы всегда можете использовать табуляцию, чтобы ввести "s [TAB]" и нажмите ENTER, и это будет выполнено.