Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 像程序一样执行快捷方式_Powershell - Fatal编程技术网

Powershell 像程序一样执行快捷方式

Powershell 像程序一样执行快捷方式,powershell,Powershell,示例:您在当前目录中有一个指向SomeProgram的快捷方式s 在cmd.exe中,您可以键入s,它将启动程序 在PowerShell中,键入s可提供: 术语“s”不能识别为cmdlet、函数、可操作程序或脚本文件。请验证术语并重试。 如果键入s.lnk或SomeProgram,程序运行正常 如何将PowerShell配置为像程序一样执行快捷方式?我不相信您可以。最好在从概要文件脚本调用的脚本中使用常用命令的别名 范例- 设置别名np c:\windows\notepad.exe 然后,您可以

示例:您在当前目录中有一个指向
SomeProgram
的快捷方式
s

cmd.exe
中,您可以键入
s
,它将启动程序

在PowerShell中,键入
s
可提供:

术语“s”不能识别为cmdlet、函数、可操作程序或脚本文件。请验证术语并重试。

如果键入
s.lnk
SomeProgram
,程序运行正常


如何将PowerShell配置为像程序一样执行快捷方式?

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

范例-

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


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

您可以始终使用tab completion来键入“s[tab]”,然后按ENTER键,这样就可以执行它。

在我的Vista系统上,键入s不会启动lnk文件,除非我将环境变量PATHEXT设置为列表中的.lnk。当我这样做的时候。S将在cmd.exe中工作,我必须在powershell中执行。\S。

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

PATHEXT环境变量 定义文件扩展名列表 搜索时由Windows NT检查 对于可执行文件。PATHEXT的默认值为.COM;。EXE;。蝙蝠;。指令

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

我想补充一点,您应该传递引号之外的任何参数(这是我之前的一位),注意“-r”不在引号中,只有exe

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

在添加
;之后;。LNK
到我的
PATHEXT
环境变量的末尾,我现在可以执行快捷方式,即使没有前面的
/
符号。(谢谢bruceatk!)

史蒂文建议创建一个小脚本,自动为我的
路径
中的所有快捷方式添加别名,这也启发了我(尽管我计划坚持使用更简单的解决方案;)


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

invoke-item 'Internet Explorer.lnk'
或者您也可以使用别名

ii 'internet explorer.lnk'
另一件很酷的事情是,您可以执行“invoke item t.txt”,它将自动打开*.txt文件的默认处理程序,例如记事本


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

cmd会自动将当前目录“.”添加到PATH环境变量中。PowerShell将此视为安全风险,并强制您显式键入。\path。在linux中,您可以将“.”添加到PATH环境变量中以恢复“危险”行为……我认为您还必须键入完整的文件名s.lnk,如slipsec saidJaykul/slipsec所述,我给出的答案是,可以将.lnk添加到PATHEXT环境变量中,然后可以从命令行启动快捷方式,而无需添加.lnk。问题是它没有启动UI。现在,我尝试启动VisualStudio。我可以看到它的过程,但当我使用RDP连接到计算机时,没有显示UI。有什么想法吗?
ii 'internet explorer.lnk'