Выполнять ярлыки, как программы

Пример: у вас есть ярлык s для SomeProgram в текущем 9X_windows-powershell каталоге.

В cmd.exe введите s, и программа запустится.

В 9X_windows-powershell 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 или 9X_powershell SomeProgram, программа запустится нормально.

Как настроить 9X_powershell PowerShell для выполнения ярлыков точно 9X_windows-powershell так же, как программы?

17
0
5
Общее количество ответов: 5

Ответ #1

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

Вы также можете вызвать ярлык с помощью 9X_powershell командлета «invoke-item». Так, например, если 9X_powershell вы хотите запустить «internet explorer.lnk», вы 9X_windows-powershell можете ввести следующую команду:

invoke-item 'Internet Explorer.lnk'

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

ii 'internet explorer.lnk'

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

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

18
0

Ответ #2

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

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

9
1

  • cmd автоматически добавляет текущий каталог "." в переменную среды PATH. PowerShell считает это угрозой безопасности и заставляет вас явно вводить путь. \. Как и в Linux, вы можете добавить "." в переменную среды PATH, чтобы ...

Ответ #3

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

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

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

$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 }

5
0

Ответ #4

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

Я не верю, что ты можешь. Возможно, вам 9X_windows-powershell лучше использовать псевдонимы часто используемых 9X_windows-powershell команд в сценарии, который вы вызываете 9X_powershell из сценария своего профиля.

Пример -

Установить 9X_powershell псевдоним np c:\windows\notepad.exe

Тогда 9X_powershell у вас есть короткое, легко набираемое имя, доступное 9X_windows-powershell из командной строки.

2
0

Ответ #5

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

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

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

Вы 9X_powershell можете использовать точечный источник, как 9X_windows-powershell описано другими здесь, или вы также можете 9X_powershell использовать символ вызова «&». Это 9X_windows-powershell означает, что PS обрабатывает вашу строку 9X_powershell как нечто, что нужно выполнить, а не просто 9X_powershell как текст. Хотя в сценарии это может быть 9X_windows-powershell важнее.

Я бы добавил, что вы должны передавать 9X_windows-powershell любые параметры ВНЕ кавычек (этот бит меня 9X_powershell раньше), обратите внимание, что «-r» не 9X_windows-powershell находится в строке в кавычках, только exe.

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

2
0