Em Powershell, existe uma maneira de salvar um comando digitado no histórico sem executá-lo para execução posterior?

4

Em Powershell, existe uma maneira, após digitar um comando longo ou complicado, de cometer esse comando no buffer de histórico, mas não executá-lo?

Por exemplo, você começa a digitar um commit do git, dentro do posh-git: directory:

git commit -m "Added the library 'ASDF' and did some initial integration into the project" [pause]

E bem, quando você digita isso, eu estou pensando ... Uh, eu preciso fazer algo primeiro, como adicionar um arquivo adicional para confirmar fazer outra coisa primeiro, ou criar um diretório ou algo assim (situação inventada, eu Perceba que o Powershell vai criá-lo automaticamente e eu percebo que o git pode "alterar o commit".) Então, eu gostaria de salvar essa mensagem de commit em um buffer de histórico, mas sem executá-lo, para ser lembrado mais tarde, ou fazer algo antes.

De acordo com este artigo, as teclas de atalho do Windows PowerShell: link não aparecem para ser um toque de tecla para fazer isso.

Tecla ESC (e Ctrl + C) cancelará o comando e apagará ... O que eu preciso é salvar no histórico, para ser executado mais tarde, preservando assim minha digitação. Existe uma tecla para isso?

    
por enorl76 11.06.2013 / 16:34

3 respostas

10

Bem, você sempre pode colocar uma tag de comentário antes do comando assim:

#Get-ChildItem

E quando estiver pronto para executar, vá até o comando Home e Del , então Digite para executar.

    
por 11.06.2013 / 16:52
1

Muitos dos comandos suportam um parâmetro -whatif que você pode anexar e remover posteriormente. No entanto, devo dizer que gosto mais da ideia de comentário.

    
por 13.06.2013 / 16:43
1

Isso parece funcionar também, depois de alguns jogos com invocação:

$VariableName = "Windows Command"

Então, para executar:

Invoke-Expression "$VariableName"

Um exemplo com o Ping:

TambémconseguiusarasexpressõesdoPowerShelldamesmamaneira:

PSH:>$Outlooks="Get-Process -Name Outlook -Verbose | fl StartTime, Threads" PS H:> Invoke-Expression "$Outlooks"

Basicamente, acredito que o que está acontecendo é que estamos criando uma string para a primeira variável (Exatamente o que parece, direto), e então quando invocamos nossa variável dentro de "" ela força o interpretador a expandir a variável , fazendo com que ele chame o comando certo.

    
por 14.06.2013 / 21:30