例子:你有一条捷径 sSomeProgram 在当前目录中。

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 以像程序一样执行快捷方式?

有帮助吗?

解决方案

在我的 Vista 系统上,输入 S 不会启动 lnk 文件,除非我在列表中使用 .lnk 设置了环境变量 PATHEXT。当我做。S 将在 cmd.exe 中工作,而我必须在 powershell 中执行 .\S 。

其他提示

您还可以使用“invoke-item”cmdlet 调用快捷方式。例如,如果您想启动“internet explorer.lnk”,您可以键入以下命令:

invoke-item 'Internet Explorer.lnk'

或者您也可以使用别名

ii 'internet explorer.lnk'

另一个很酷的事情是,您可以执行“invoke-item t.txt”,它会自动打开 *.txt 文件的默认处理程序,例如记事本。

笔记 如果要在当前目录中执行应用程序 app.exe,则必须实际指定要执行的相对或绝对路径。“.\app.exe”是您需要键入的内容来执行应用程序。

添加后 ;.LNK 到我的结束 PATHEXT 环境变量,我现在可以执行快捷方式,即使没有前面的 ./ 符号。(谢谢布鲁斯克!)

我还受到史蒂文建议的启发,创建一个小脚本,自动为我的文件中的所有快捷方式添加别名。 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 }

我不相信你可以。您最好在从配置文件脚本调用的脚本中使用常用命令的别名。

例子 -

设置别名 np c:\windows otepad.exe

然后您就可以从命令行获得简短、易于输入的名称。

其一,快捷方式不是“s”,而是“s.lnk”。例如。当名称为“t.txt”时,您无法通过键入“t”来打开文本文件(例如使用记事本):) 科技网说

PATHEXT 环境变量 定义文件扩展名列表 由 Windows NT 在搜索时检查 为可执行文件。PATHEXT 的默认值为.COM;.EXE;.BAT;.CMD

您可以按照此处其他人的描述进行点源,也可以使用调用字符“&”。这意味着 PS 将您的字符串视为要执行的内容,而不仅仅是文本。不过,这在脚本中可能更重要。

我想补充一点,你应该在引号之外传递任何参数(这一点之前我就说过了)注意“-r”不在引号字符串中,只有exe。

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

您始终可以使用制表符完成来键入“s[TAB]”并按 ENTER 键,这将执行它。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top