我希望在 SendTo 中有一个指向 PowerShell 脚本的快捷方式,以便将文件资源管理器中选定的所有项目作为参数传递给 PowerShell 脚本。这对于我能够在 PowerShell 中定义自定义任务非常有用。
例如,如果我在 SendTo 中有一个快捷方式Zip to backup folder.lnk
。我在文件资源管理器中选择多个项目(文件和文件夹),然后右键单击 > SendTo >“压缩到备份文件夹”,我选择的所有文件和文件夹随后都会作为参数传递给 PowerShell 脚本(因为.fullname
路径可能是最简单的),从那里我可以对选定的项目执行多个 PowerShell 操作。
如何设置快捷方式以shell:SendTo
将选定的文件资源管理器项传递给 PowerShell 脚本?
我看到一些东西这里和这里但是一个是使用 Cmd 的临时解决方案(纯 PowerShell 方法在 2022 年可能更合适),另一个则更多地涉及完整的上下文菜单项。
答案1
“SendTo”文件夹中的快捷方式可以有此目标:
- 对于 Windows PowerShell:
"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -File "FullPathToYourScript.ps1"
- 对于 PowerShell 7+:
"%ProgramFiles%\PowerShell\7\pwsh.exe" -File "FullPathToYourScript.ps1"
当调用“发送到”菜单项时,系统会将所选文件的完整路径附加到命令中。在脚本中,使用自动$args
数组变量来获取文件路径。
如何获取选定文件的数量并循环路径的示例:
"Received $($args.Count) files:"
foreach( $path in $args ) {
"Processing file: $path"
}