때로는 Powershell의 명령을 복사하여 문서에 붙여 넣거나 출력을 복사하고 싶습니까? Powershell에서 텍스트를 선택하고 복사하려면 어떻게해야합니까?
적어도 Powershell에 텍스트 (또는 명령)를 붙여 넣는 방법을 알고 있습니다. Powershell을 마우스 오른쪽 버튼으로 클릭하면됩니다.
때로는 Powershell의 명령을 복사하여 문서에 붙여 넣거나 출력을 복사하고 싶습니까? Powershell에서 텍스트를 선택하고 복사하려면 어떻게해야합니까?
적어도 Powershell에 텍스트 (또는 명령)를 붙여 넣는 방법을 알고 있습니다. Powershell을 마우스 오른쪽 버튼으로 클릭하면됩니다.
답변:
콘솔 창에서 텍스트를 선택하고 Enter 또는 마우스 오른쪽 버튼을 누르십시오. 선택한 텍스트가 클립 보드에 나타납니다.
콘솔 창에서 QuickEdit 모드가 활성화 된 경우에만 작동합니다. 그렇지 않은 경우 콘솔 창 속성 (시스템 메뉴 → 속성 → 옵션)에서 활성화하거나 시스템 메뉴 → 편집 → 마크 (영어 Windows의 경우 Alt + Space, E, K)를 통해 마크 모드로 들어갑니다.
또는 clip.exe를 사용하여 명령 출력을 클립 보드로 직접 보냅니다. 예를 들어,
Get-ChildItem C:\Test -recurse | Clip
Set-Clipboard
PSCX에서 사용할 수 있습니다 .
clip.exe
유니 코드를 올바르게 처리 하는 방법이 있습니다 . PS의 $OutputEncoding
변수를 먼저 BOM이없는 UTF-16으로 설정하십시오.$OutputEncoding = New-Object System.Text.UnicodeEncoding($false, $false)
메모장 (C # 또는 Powershell)과 같은 클립 보드의 텍스트를 응용 프로그램으로 보내기를 살펴보십시오 . 더 많은 팁을 찾을 수 있습니다. 그러나 @Wictor의 대답은 아마도 가장 쉬운 해결책 일 것입니다.
이를 위해 자체 클립 보드 기능을 작성했습니다.
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()
}
}
샘플 명령 줄 :
Get-Process | Out-Clipboard
그것이 당신이 찾고있는 것이기를 바랍니다.