77 votes

Comment copier du texte à partir de PowerShell

Parfois, je veux copier une commande de Powershell pour la coller dans un document, ou je veux copier la sortie ? Comment puis-je sélectionner et copier du texte dans Powershell ?

Au moins, je connais un moyen de coller un texte (ou une commande) dans Powershell : il suffit de faire un clic droit sur Powershell.

59voto

machinima74 Points 56

Il suffit de sélectionner le texte dans la fenêtre de la console et d'appuyer sur Entrée ou sur le bouton droit de la souris. Le texte sélectionné se retrouve dans votre presse-papiers.

Notez que cela ne fonctionnera que si le mode QuickEdit est activé pour la fenêtre de la console. Si ce n'est pas le cas, il faut soit l'activer dans les propriétés de la fenêtre de console (menu Système → Propriétés → Options), soit passer en mode Marque via le menu Système → Édition → Marque (Alt+Espace, E, K sur un Windows anglais).

31voto

edmz Points 111

Ou envoyez la sortie de votre commande directement dans le presse-papiers en utilisant clip.exe. Par exemple,

Get-ChildItem C:\Test -recurse | Clip

8voto

zoom Points 71

Allez dans la barre de menu, en haut à gauche, Modifier , Sélectionner tout , Copie , coller dans le bloc-notes

2voto

njr101 Points 5532

Jetez un coup d'œil à Envoyer le texte du presse-papiers à une application comme Notepad (C# ou Powershell) . Vous y trouverez d'autres conseils. Cependant, la réponse de @Wictor est probablement la solution la plus simple.

1voto

J'ai construit ma propre fonction hors-clipboard pour cela.

Function Out-Clipboard{
    param($Value,[switch]$PassThru) 
    begin {
            [void][reflection.assembly]::LoadWithPartialName("Windows.Forms")
        $tb = New-Object System.Windows.Forms.TextBox
        $tb.Multiline = $true
        $pipeObjects = @()
    }
    process {
      $pipeObjects+=$_
    }
    end {
        if([string]::IsNullOrEmpty($Value)){
            $text=$null
            $pipeObjects | out-string -stream | %{$text = $text + $(if($text -ne $null){"`r`n"}) + $_}
            $tb.text = $text
        } 
        else {
            $tb.text = $value
        }
        $tb.SelectAll()
        $tb.Copy()
        if($PassThru){
            $pipeObjects
        }
        $tb.Dispose()
    }
}

Exemple de ligne de commande :

Get-Process | Out-Clipboard

J'espère que c'est ce que vous cherchez.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X