Windows Powershell: Execução de comandos através do menu de contexto?

2

Estou usando o kramdown para converter meus arquivos de código-fonte formatados em markdown em html. O comando que eu tenho usado é:

kramdown %filename | Out-Clipboard

(Out-Clipboard é do fantástico PSCX . Isso significa que meu html formatado está imediatamente pronto para colar em outro programa ou editor)

Eu adoraria simplificar esse processo e ser capaz de usar um item de menu de contexto para fazer a mesma coisa, em vez de abrir um shell e digitar o comando a cada vez. Qual é a melhor maneira de passar essas instruções para o powershell e adicioná-lo como opção de menu?

    
por eden 11.08.2011 / 18:10

1 resposta

6

Você pode executar comandos do PowerShell a partir da linha de comando (arquivos em lote, etc.) usando este formato:

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

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

Assim, podemos usar isso em uma entrada no menu de contexto.

Para simplificar, veja como você pode adicionar um novo menu de contexto para executá-lo em qualquer arquivo que você tenha selecionado / clicado com o botão direito (provavelmente não é a ÚNICA maneira de fazer isso):

  • Vá para HKEY_CLASSES_ROOT\*\shell no registro.
  • Crie uma nova chave com o nome que você deseja (como, por exemplo, "Kramdown").
  • Defina o valor REG_SZ "Padrão" dessa nova chave para o texto que você deseja que apareça no menu de contexto (por exemplo, "Kram This Down").
  • Crie outra nova chave dentro da chave que acabou de criar e nomeie-a como "comando".
  • Defina o valor do REG_SZ "Padrão" nessa nova chave "command" para executar o comando desejado.

O comando que você deseja inserir é como acima, apenas precisamos informar para fazer isso no prompt de comando e usar a variável% 1 para que ele saiba o arquivo em que você clicou:

cmd /C PowerShell "kramdown %1 | Out-Clipboard"

O / C faz com que a janela do CMD feche depois de terminar.

Assim que fizer essas alterações no registro, elas afetarão o menu de contexto, para que você não precise fazer logout ou reinicializar para ativar ou testar suas alterações.

Como não tenho seus arquivos fonte, Kramdown ou Out-Clipboard, não posso testar 100%; mas isso deve ser informação suficiente para você ir, se não "simplesmente funcionar" como está. :)

    
por 11.08.2011 / 21:22