Windows Powershell:通过上下文菜单执行命令?

ede*_*den 3 powershell context-menu

我正在使用 kramdown 将我的 markdown 格式的源文件转换为 html。我一直在使用的命令是:

kramdown %filename | Out-Clipboard
Run Code Online (Sandbox Code Playgroud)

(Out-Clipboard 来自神奇的PSCX。这意味着我格式化的 html 可以立即粘贴到另一个程序或编辑器中)

我很想简化这个过程,并且能够使用上下文菜单项来做同样的事情,而不是每次打开一个 shell 并输入命令。将这些说明传递给 powershell 并将其添加为菜单选项的最佳方法是什么?

Ƭᴇc*_*007 7

您可以使用以下格式从命令行(批处理文件等)运行 PowerShell 命令:

C:\> PowerShell <PowerShell command you want to run>

IE: C:\> PowerShell "kramdown MyFileName.txt | Out-Clipboard"

所以我们可以在上下文菜单条目中使用它。

为简单起见,您可以添加新的上下文菜单命令以针对您选择/右键单击的任何文件运行它(这可能不是执行此操作的唯一方法):

  • 前往HKEY_CLASSES_ROOT\*\shell注册表。
  • 创建一个名为你想要的新密钥(比如说“Kramdown”)。
  • 将该新键的“默认”REG_SZ 值设置为您希望出现在上下文菜单上的文本(例如“Kram This Down”)。
  • 在您刚刚创建的密钥中创建另一个新密钥,并将其命名为“命令”。
  • 在新的“命令”键中设置“默认”REG_SZ 的值以运行您想要的命令。

您要输入的命令与上面类似,只是我们需要在命令提示符下告诉它执行此操作,并使用 %1 变量使其知道您单击的文件:

cmd /C PowerShell "kramdown %1 | Out-Clipboard"
Run Code Online (Sandbox Code Playgroud)

/C 会导致 CMD 窗口在完成后关闭。

一旦您进行这些注册表更改,它们将影响上下文菜单,因此您无需注销或重新启动即可启用或测试您的更改。

由于我没有您的源文件、Kramdown 或 Out-Clipboard,我无法 100% 测试;但这应该足以让您继续前进,如果它不能按原样“正常工作”。:)