Выполнять ярлыки, как программы
Пример: у вас есть ярлык 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 так же, как программы?
Ответ #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 приложение.
Ответ #2
Ответ на вопрос: Выполнять ярлыки, как программы
В моей системе Vista ввод S не запустит 9X_windows-powershell lnk-файл, если у меня не установлена переменная 9X_powershell окружения PATHEXT с .lnk в списке. Когда 9X_windows-powershell я делаю. S будет работать в cmd.exe, а мне 9X_windows-powershell нужно сделать .\S в powershell.
- 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 }
Ответ #4
Ответ на вопрос: Выполнять ярлыки, как программы
Я не верю, что ты можешь. Возможно, вам 9X_windows-powershell лучше использовать псевдонимы часто используемых 9X_windows-powershell команд в сценарии, который вы вызываете 9X_powershell из сценария своего профиля.
Пример -
Установить 9X_powershell псевдоним np c:\windows\notepad.exe
Тогда 9X_powershell у вас есть короткое, легко набираемое имя, доступное 9X_windows-powershell из командной строки.
Ответ #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
-
8
-
8
-
2
-
3
-
4
-
11
-
8
-
12
-
3
-
4
-
5
-
8
-
10
-
2
-
6
-
4
-
20
-
7
-
9
-
10
-
10
-
4
-
10
-
7
-
7
-
7
-
3
-
3
-
9
-
10
-
11
-
5
-
3
-
5
-
4
-
6
-
3
-
6
-
8
-
4
-
10
-
6
-
3
-
7
-
2
-
6
-
8
-
5
-
5
-
15