使用 PowerShell 创建快捷方式

Rohan Timalsina 2022年5月16日
使用 PowerShell 创建快捷方式

快捷方式是可以指向系统上任何程序、文件或文件夹的链接。在桌面或任务栏上有一个快捷方式,用户无需在计算机上搜索多个文件夹。

在 Windows 中,快捷方式文件包含原始文件的目标路径,并具有 .lnk 扩展名,图标左下角带有箭头。当你打开快捷方式文件时,它将打开原始文件。

它在磁盘中占用的空间非常小。本文将教你使用 PowerShell 创建快捷方式。

使用 ComObject 使用 PowerShell 创建快捷方式

你将需要一个 WScript.Shell 类型的 COM 对象来使用 PowerShell 创建快捷方式。New-Object cmdlet 创建 .NET 框架或 COM 对象的新实例。

你可以使用 ComObject 参数创建 COM 对象。下面的命令创建一个代表 WScript.ShellCOM 对象并将其分配给变量 $WScriptShell

$WScriptShell = New-Object -ComObject WScript.Shell

现在,让我们定义一个文件的位置来创建它的快捷方式。在这里,我们正在为 Typora 应用程序创建一个快捷方式。

$TargetFile = "C:\Program Files\Typora\Typora.exe"

然后定义快捷方式文件的名称和位置。

$ShortcutFile = "C:\Users\rhntm\OneDrive\Desktop\Typora.lnk"

之后,使用 CreateShortcut 方法并将其分配给一个变量,如下所示。

$Shortcut = $WScriptShell.CreateShortcut($ShortcutFile)

下一步是将目标路径添加到 $TargetFile 变量。

$Shortcut.TargetPath = $TargetFile

最后,调用 Save() 方法并保存你的快捷方式。

$Shortcut.Save()

快捷方式在指定位置创建为 Typora.lnk

Get-ChildItem "C:\Users\rhntm\OneDrive\Desktop"

输出:

    Directory: C:\Users\rhntm\OneDrive\Desktop

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         1/30/2022  11:34 AM            970 Typora.lnk

完整的脚本应该是这样的:

$WScriptShell = New-Object -ComObject WScript.Shell
$TargetFile = "C:\Program Files\Typora\Typora.exe"
$ShortcutFile = "C:\Users\rhntm\OneDrive\Desktop\Typora.lnk"
$Shortcut = $WScriptShell.CreateShortcut($ShortcutFile)
$Shortcut.TargetPath = $TargetFile
$Shortcut.Save()

你还可以在 PowerShell 脚本中使用此函数来创建快捷方式。

function createShortcut {
param ([string]$TargetFile, [string]$ShortcutFile)
    $WScriptShell = New-Object -ComObject WScript.Shell
    $Shortcut = $WScriptShell.CreateShortcut($ShortcutFile)
    $Shortcut.TargetPath = $TargetFile
    $Shortcut.Save()
    }

createShortcut "C:\Program Files\Greenshot\Greenshot.exe" "C:\New\Greenshot.lnk"
作者: Rohan Timalsina
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website