我需要將PowerShell變量的內容輸出到剪貼板,保留除最後一行外的所有換行符。
此刻,我只是將變量讀數的輸出傳遞給clip.exe,但是會產生一個尾隨的換行符。Powershell輸出到剪貼板沒有拖尾換行符?
$Text = "line1`nline2"
$Text | clip.exe
給出如下:
"line1,
line2
"
我會把它想輸出
"line1,
line2"
我會如何實現這一目標?
我需要將PowerShell變量的內容輸出到剪貼板,保留除最後一行外的所有換行符。
此刻,我只是將變量讀數的輸出傳遞給clip.exe,但是會產生一個尾隨的換行符。Powershell輸出到剪貼板沒有拖尾換行符?
$Text = "line1`nline2"
$Text | clip.exe
給出如下:
"line1,
line2
"
我會把它想輸出
"line1,
line2"
我會如何實現這一目標?
使用管道可能會導致由PowerShell添加新行。您可以使用Set-Clipboard
,它應該避免換行問題。
您還可以使用.NET選項以及:
[System.Windows.Forms.Clipboard]::SetText("line1`r`nline2")
querent沒有指定他使用的PowerShell版本,並且「Set-Clipboard」在所有版本中都不可用。我從PS2到PS5的所有內容都使用了.NET技術,甚至將它們封裝到腳本cmdlet /高級功能中。 –
我正在使用v.5,對不起,我不得不查看它。我昨天才開始使用它,所以我不太熟悉版本的差異,或者提及我正在使用的版本有多重要。 – totalolage
設置剪貼板將爲你工作。 .NET方法將在版本2及更高版本中運行。 –
嘗試'設置Clipboard'。 –
謝謝Jeroen,這似乎工作,但它提出了一個新問題;我無法再確定複製的文本將帶有哪些字符集(我需要它在ISO-8859-2中),因爲之前用來確定複製字符集的chcp不適用於設置剪貼板功能。 任何想法如何解決這個問題? – totalolage
這是一個奇怪的具體請求。剪貼板可以根據需要轉換數據。我假設(有危險的假設)PowerShell將文本設置爲Unicode,並且我很難想象爲什麼應用程序無法使用它,而不管它首選哪種格式。如果我(比如說)從記事本複製數據,它肯定不會以ISO-8859-2結尾 - 你是說你要複製數據的任何東西無法處理記事本中的文本? –