如何使用powershell同时为目录中的所有.exe文件创建多个快捷方式

how to create several shortcuts at the same time for all .exe files in a directory using powershell

你好,我想使用 powershel 和类似的东西同时创建多个快捷方式

Get-ChildItem -Path D:\something\ -Include *.exe -File -Recurse -ErrorAction SilentlyContinue

获取结果并为所有 .exe 文件生成快捷方式(.lnk 文件)

(.exe只是文件类型的一个例子)

你能帮帮我吗?谢谢

要为目录中的所有 .exe 文件创建快捷方式,您可以执行以下操作:

  • 创建 Windows 脚本主机 COM 对象以创建快捷方式。您可以从 MSDN 查看 Creating COM Objects with New-Object 了解更多信息。
  • 获取目录中的所有 .exe 个文件。与您已经使用 Get-ChildItem.
  • 所做的类似
  • 迭代每个文件。这里可以用foreach or Foreach-Object
  • 从文件中提取 BaseName。这意味着从 test.exe 得到 test。我们需要这个来制作快捷方式文件。
  • 从路径创建快捷方式。此路径只是目标路径 + 文件名 + .lnk 扩展名。我们可以在这里使用 Join-Path 来制作这条路径。
  • 将快捷方式的目标路径设置为可执行文件并保存快捷方式。

示范:

$sourcePath = "C:\path\to\shortcuts"
$destinationPath = "C:\path\to\destination"

# Create COM Object for creating shortcuts
$wshShell = New-Object -ComObject WScript.Shell

# Get all .exe files from source directory
$exeFiles = Get-ChildItem -Path $sourcePath -Filter *.exe -Recurse

# Go through each file
foreach ($file in $exeFiles)
{
    # Get executable filename
    $basename = $file.BaseName

    # Create shortcut path to save to
    $shortcutPath = Join-Path -Path $destinationPath -ChildPath ($basename + ".lnk")

    # Create shortcut
    $shortcut = $wshShell.CreateShortcut($shortcutPath)

    # Set target path of shortcut to executable
    $shortcut.TargetPath = $file.FullName

    # Finally save the shortcut to the path
    $shortcut.Save()
}