有没有办法通过拖放文件来运行 powershell 脚本(就像将文件拖放到 .exe 文件上一样)?如果能够对文件夹执行相同的操作就好了……
答案1
创建 Windows 资源管理器快捷方式(在资源管理器中右键单击 -> 新建 -> 快捷方式)。然后右键单击快捷方式并打开属性对话框。在目标字段中输入如下内容:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noexit -noprofile -file C:\yourscriptdirectory\yourscript.ps1
无论你是否需要-noexit
或-noprofile
选项都取决于你,看看帮助决定。
现在,当您将文件(或文件夹)放到此快捷方式上时,资源管理器将神奇地将其作为第一个参数传递给您的脚本。
答案2
当您将一个文件拖放到快捷方式文件上时,上述快捷方式即可工作。完全限定的文件名将作为被调用的 PowerShell 脚本的第一个参数传递。
您也可以删除多个文件。 可以通过使用 PowerShell 脚本中的 [Parameter(ValueFromRemainingArguments=$true)] 规范将它们作为 $Args 数组参数或命名参数来获取。
请参阅我在 Stack Overflow 上的总结 将文件拖放到 PowerShell 脚本中 --- 其他信息和解决方案
- 该帖子还描述了如何使用 .BAT 文件而不是快捷方式文件将拖放的文件名传递给 PowerShell 脚本。
- 在一个第二次发帖我给出了一种方法,让 PowerShell 脚本也能扩展并处理任何放置的目录中的文件。