2013-10-03 2 views
1

Je joue avec PowerShell et je me retrouve constamment à taper des cls avant d'exécuter des commandes. Ou pire, j'exécute une commande, je me rends compte que la sortie d'autres choses rend la navigation, l'exécution de cls et la relance de ma commande darn difficile. Existe-t-il un moyen d'effacer la sortie de la commande précédente avant d'exécuter chaque commande? Évidemment, ce serait idéal si cela pouvait être basculé avec une commande ou quelque chose de simple, mais tout ce qui fonctionnerait. :) En outre, je joue avec PS 3, ISE et PowerGUI.L'écran PowerShell peut-il être effacé avant chaque commande?

Répondre

4

sais que c'est plus, mais pensé que je passerais ce long à tous ceux qui cherchent autre -

Une astuce que j'utilise est de simplement mettre « cls » comme la première ligne dans l'écran de mon éditeur de PowerShell (dans mon cas , en utilisant PowerShell ISE). Ensuite, chaque fois que je lance mon script, la console PowerShell de l'ISE est effacée, ce qui permet de gagner du temps et de ne montrer que ma dernière exécution. Je ne conseille pas de laisser "cls" dans les scripts de production - mais il est utile pour les tests itératifs dans un ISE où vous vérifiez constamment la sortie dans la fenêtre de la console PowerShell en fonction de l'entrée de script.

+1

C'est une bonne approche pour un script. Pour les commandes ad hoc, on peut aussi préfixer cls; –

0

Il existe une fonction, une invite, qui est exécutée chaque fois que PowerShell demande une commande. Sur mon système (PS v3, ISE) le script intégré est

$host.ui.rawui.WindowTitle = ($host.ui.rawui.WindowTitle -split ":")[0] + ": $pwd" 
$(if (test-path variable:/PSDebugContext) { 
    '[DBG]: ' 
    } else { 
    '' 
    }) + 
'PS' + 
$(if ($nestedpromptlevel -ge 1) { ">>>" } else { "> "}) 

Vous pouvez remplacer ou modifier ce script. Par exemple, vous pouvez mettre la commande cls en haut du script ci-dessus.

+0

Lorsque je l'ai fait, cela efface simplement la sortie de chaque commande. Donc, ça ne marchera pas. –

+0

Je vois. Je pensais que vous vouliez juste un pointeur sur le chemin à parcourir. Pour étoffer cela: vous pouvez mettre un host-read devant les cls. Ensuite, vous entrez votre commande, la sortie est affichée, vous appuyez sur Entrée pour effacer la sortie et entrez votre commande suivante. Si vous réfléchissez un peu à l'idée de modification, vous pourriez trouver d'autres façons de le faire. –

0

Dans PowerShell, pour effacer l'écran, vous pouvez taper Clear-Host ;, ses alias, cls; et clair; ou son équivalent [System.Console] :: Clear() ;.

Questions connexes