Powershell'de taşıma iadesinin panoya kopyalanması nasıl önlenir?


3

MAC adresini içeren bir powershell betiği var, sonra onu bir dosyaya ve panoya gönderiyorum.

$hash = [System.BitConverter]::ToString($md5.ComputeHash($utf8.GetBytes($MAC)))
$hash | clip
$hash | Out-File $Env:USERPROFILE\Desktop\this.txt 

Sahip olduğum sorun, bir taşıma iadesinin panoya aktarılması. Bunu istemiyorum

Bunu durdurmanın bir yolu var mı?

Ek bilgi - Panodaki metni onaltılık düzenleyiciye yapıştırdığımda 0D0A görüyorum

Eğer biraz gevşeyebilirsem pano işlevi iyi olur mu? Teşekkürler


Bu arada, bu aslında iki karakter: CR (satır başı) ve LF (satır besleme). Başka bir deyişle, bir Windows yeni satırı.
Bob,

Yanıtlar:


1

PowerShell 5.0 veya daha yenisini kullanabilirseniz Set-Clipboardkullanılabilir. Herhangi bir yeni satır karakteri eklemiyor. Böylece, örneğiniz olur:

$hash = [System.BitConverter]::ToString($md5.ComputeHash($utf8.GetBytes($MAC)))
$hash | Set-Clipboard
$hash | Out-File $Env:USERPROFILE\Desktop\this.txt

Eğer benim gibiyseniz ve unutmaya devam Set-Alias clip Set-Clipboard
ederseniz


0

Ne yazık ki, clipkendisi yeni çizgiyi ekliyor gibi görünüyor . Öyleyse, bunu .NET yoluyla yapalım!

İşte stdin alan ve panoya koyan bir işlev:

function Out-ClipboardText
{
    param(  
        [Parameter(
            Position=0, 
            Mandatory=$true, 
            ValueFromPipeline=$true)
        ]
        [String]$text
    ) 

    process
    {
        powershell -sta -noprofile -command "add-type -an system.windows.forms; [System.Windows.Forms.Clipboard]::SetText('$text')"
    }
}

Http://brianreiter.org/2010/09/03/copy-and-paste-with-clipboard-from-powershell/ ve https://stackoverflow.com/a/887406/1030702'den uyarlanmıştır.

Öyle kullanın:

$hash | Out-ClipboardText

Metni ayarlamak için .NET pano işlevini kullanır. Ne yazık ki, aynı zamanda biraz yavaş ve karmaşık çünkü STA modunda Clipboard( kaynak ) için gerektiği gibi yeni bir PowerShell işlemi başlatması gerekiyor .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.