执行程序之类的快捷方式
示例:在当前目录中,我们有一个指向" SomeProgram"的快捷方式" s"。
在" 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以像程序一样执行快捷方式?
解决方案
回答
我不相信你可以。从配置文件脚本调用的脚本中,最好对别名的常用命令使用别名。
例子 -
Set-Alias np c:\ windows \ notepad.exe
然后,我们可以从命令行获得简短易输入的简短名称。
回答
我们始终可以使用制表符补全键入" s [TAB]",然后按Enter,然后将执行它。
回答
在我的Vista系统上,除非在列表中将环境变量PATHEXT设置为.lnk,否则键入S不会启动lnk文件。当我做。 S将在cmd.exe中工作,而我必须在powershell中执行。\ S。
回答
首先,快捷方式不是" s",而是" s.lnk"。例如。当名称为" t.txt"时,我们无法通过键入" t"来打开文本文件(例如使用记事本):) Technet说
The PATHEXT environment variable defines the list of file extensions checked by Windows NT when searching for an executable file. The default value of PATHEXT is .COM;.EXE;.BAT;.CMD
我们可以按此处其他人的描述进行点源,也可以使用调用字符"&"。这意味着PS会将字符串视为要执行的内容,而不仅仅是文本。不过,这在脚本中可能更为重要。
我要补充一点,我们应该在引号之外传递任何参数(这是我之前的一点),请注意,"-r"不在引号字符串中,仅在exe中。
& "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe" -r | out-null
回答
在我的环境变量" PATHEXT"的末尾添加"; .LNK"之后,即使没有前面的" ./"符号,我现在也可以执行快捷方式。 (感谢bruceatk!)
史蒂文的建议也启发了我,我创建了一个小脚本,该脚本会自动为我的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 }
回答
我们也可以使用" invoke-item" cmdlet调用快捷方式。因此,例如,如果我们要启动" internetexplorer.lnk",则可以键入以下命令:
invoke-item 'Internet Explorer.lnk'
或者我们也可以使用别名
ii 'internet explorer.lnk'
另一个很酷的事情是,我们可以执行"调用项t.txt",它将自动打开* .txt文件的默认处理程序,例如记事本。
注意如果要在当前目录中执行应用程序app.exe,则必须实际指定要执行的相对或者绝对路径。我们需要输入"。\ app.exe"来执行该应用程序。