将快捷方式批量转换为目标

将快捷方式批量转换为目标

(Windows10) 有时我需要创建主照片文件夹的子集,但我想巧妙地节省空间,方法是在某处创建 SUBSETFOLDER,然后选择我想要的图片,右键单击其中一个文件并将此子集拖到 SUBSETFOLDER。当我释放鼠标按钮时,我选择“创建快捷方式”,这实际上会为所有选定的文件创建快捷方式。
这按预期工作,然后我可以转到 SUBSETFOLDER,单击其中一个快捷方式,图片就会出现。我甚至可以向右箭头并浏览其他图片而不会出现问题。

假设我现在想将实际文件发送到照片打印公司或将它们放在 USB 上,是否有脚本/实用程序/技巧可以将这些快捷方式转换为实际图片,以便我可以将它们复制到 USB 上?(如果这个问题之前已经解决,请原谅,我看到过类似的帖子,但做类似的事情似乎过于复杂。)

答案1

这可以在电源外壳使用wscript.shellCOM 对象,其中包括读取、创建和修改.lnk文件的方法。

这是“基本”代码,没有路径验证或错误捕获,重点在于逻辑。如果这是一项频繁操作,此代码可以作为可重用函数的基础。

$SubsetFolder  = 'C:\<Path to folder containing .lnk shortcut files>'
$Destination   = '<Path to copy destination>'

$WshShell      = New-Object -com wscript.shell

Get-ChildItem $SubsetFolder *.lnk |
    ForEach-Object {
        ( $WshShell.CreateShortcut( $_.FullName )).TargetPath |
            Copy-Item -Destination $Destination -WhatIf
    }

ForEach-Object处理中的每个文件$SubsetFolder

注意Copy-Item正在使用该-WhatIf参数。这允许您预览复制操作而无需实际复制文件 --- 这对于验证是否只处理所需文件很有用。删除该参数以实际复制文件。

相关内容