我的快捷方式经常被破坏,因为我移动了东西,不幸的是,Windows链接跟踪器无法跟上。有没有办法以编程方式(使用Powershell)读取和编辑快捷方式的属性?我想运行一个脚本,搜索整个硬盘驱动器(或我指定的任何位置)以查找与目标名称匹配的文件,然后使用该新位置更新快捷方式,假设它是正确的文件。
答案 0 :(得分:-1)
这是一个用于创建快捷方式的功能。你可以研究一下如何在你的情况下使用它
https://github.com/gangstanthony/PowerShell/blob/master/Create-Shortcut.ps1
# Create-Shortcut
#
# Create-Shortcut -Source C:\temp\test.txt -DestinationLnk C:\temp\test.txt.lnk
#
# Arguments
# Description
# FullName
# Hotkey
# IconLocation = '%SystemRoot%\system32\SHELL32.dll,16' # printer
# RelativePath
# TargetPath
# WindowStyle
# WorkingDirectory
function Create-Shortcut {
param (
[string]$Source,
[string]$DestinationLnk,
[string]$Arguments
)
BEGIN {
$WshShell = New-Object -ComObject WScript.Shell
}
PROCESS {
if (!$Source) {Throw 'No Source'}
if (!$DestinationLnk) {Throw 'No DestinationLnk'}
$Shortcut = $WshShell.CreateShortcut($DestinationLnk)
$Shortcut.TargetPath = $Source
if ($Arguments) {
$Shortcut.Arguments = $Arguments
}
$Shortcut.Save()
}
END {
function Release-Ref ($ref) {
([System.Runtime.InteropServices.Marshal]::ReleaseComObject([System.__ComObject]$ref) -gt 0)
[System.GC]::Collect()
[System.GC]::WaitForPendingFinalizers()
}
$Shortcut, $WshShell | % {$null = Release-Ref $_}
}
}