PowerShell,通过 SendTo 快捷方式将多个文件和文件夹传递给 PowerShell 脚本

PowerShell,通过 SendTo 快捷方式将多个文件和文件夹传递给 PowerShell 脚本

我希望在 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"    
}

来源 : 将“发送到”菜单中选定文件的名称传递给 powershell 脚本

相关内容