Question Dans Powershell, existe-t-il un moyen de sauvegarder une commande saisie dans l'historique sans l'exécuter pour une exécution ultérieure?


Dans Powershell, est-il possible, après avoir tapé une commande longue ou compliquée, de valider cette commande dans le tampon d’historique, mais pas de l’exécuter?

Par exemple, vous commencez à taper un commit git, dans le répertoire posh-git:

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

Et juste quand vous obtenez ce type, je pense ... Euh, je dois faire quelque chose en premier, comme ajouter un fichier supplémentaire pour commettre autre chose en premier, ou créer un répertoire ou quelque chose (situation artificielle, je réalise que Powershell sera auto-create it et je me rends compte que git peut "modifier le commit". Donc je voudrais enregistrer ce message de validation dans un tampon de l'historique, mais sans l'exécuter, être rappelé plus tard après avoir dit, mettre en scène des fichiers supplémentaires ou faire quelque chose juste avant.

Selon cet article, les touches de raccourci Windows PowerShell: http://technet.microsoft.com/en-us/library/ee176868.aspx , il ne semble pas y avoir de frappe pour le faire.

La touche ESC (et Ctrl + C) annulera la commande et la désactivera ... Ce dont j'ai besoin, c’est de sauvegarder dans l’historique, d’être exécuté plus tard, ce qui préserve ma saisie. Y a-t-il une frappe pour cela?


4
2018-06-11 14:34


origine




Réponses:


Eh bien, vous pouvez toujours mettre une balise de commentaire avant la commande comme ceci:

#Get-ChildItem

Et quand vous êtes prêt à exécuter, flèche jusqu'à la commande Accueil puis Del, puis Entrer éxécuter.


10
2018-06-11 14:52



c'est assez malin. Merci pour la suggestion! - enorl76
Oui. Utilisé cette astuce pour toujours. Je commente également mes oneliners de cette façon, car je pourrais relire l’histoire dans les années à venir (bash). - bgStack15


Beaucoup de commandes prennent en charge un -whatif paramètre que vous pouvez ajouter et supprimer ultérieurement. Cependant, je dois dire que j'aime mieux l'idée de commentaire.


1
2018-06-13 14:43



ce qui est bon, mais toutes les commandes ne le supportent pas - Keltari


Cela semble fonctionner aussi, après avoir joué avec invoke:

$VariableName = "Windows Command"

Ensuite, pour exécuter:

Invoke-Expression "$VariableName"

Un exemple avec Ping:

enter image description here

J'ai également pu utiliser les expressions PowerShell de la même manière:

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

Essentiellement, je crois que ce qui se passe, c'est que nous créons une chaîne pour la première variable (exactement à quoi elle ressemble, directement), puis lorsque nous invoquons notre variable à l'intérieur de "", elle oblige l'interpréteur à étendre la variable. appeler la bonne commande.


1
2018-06-14 19:30