gpt4 book ai didi

powershell - 执行Windows Powershell命令将文本复制到剪贴板(包括 `r` n')

转载 作者:行者123 更新时间:2023-12-02 23:53:44 26 4
gpt4 key购买 nike

我正在尝试执行powershell命令将文本复制到Windows剪贴板,包括回车符和所有特殊字符。我可以使用以下命令执行确定:

powershell.exe -command Set-Clipboard 'TEXT'

它不是直接在Powershell控制台中,因此语法有所不同。

我在文本周围使用双引号,在原始文本中用`r`n代替回车符,并在`之前转义所有其他特殊字符。
它一直工作到我得到一个'',据我理解Powershell使用它来表示文字字符串。

因此,我改变了方法,将未转义的文本用单引号引起来(用1'代替2”)。当然,单引号内的`r`n是按字面意义解释的,因此不起作用。我试过将它们放在单引号文字之外,例如:
'some text here' "`r`n" 'more text here'

这在控制台中有效,但在命令中无效。尝试在任一侧添加+,但仍然无法正常工作。

用户“TessellatingHeckler”建议使用-EncodedCommand,但不幸的是,我无法生成任何版本的base 64编码的字符串(包括在命令中),这些版本与通过PS控制台编码的相同字符串匹配。所以那是行不通的。

我一直在尝试用晦涩的字符串替换原始文本中的回车,将文本用单引号引起来(文字),然后在PS中将其替换回`r`n。我已经获得了替代品,可以直接在控制台中工作,但无法弄清楚如何将其作为命令实际发送。
powershell.exe -command Set-Clipboard $Str = 'this is a test--INSERT_CRLF_HERE--1234'; $Car = '--INSERT_CRLF_HERE--'; $clr = "`r`n"; $Str = $Str -replace $Car, $clr

可以将上述命令修改为可以工作吗?是否可以在不写入临时文件的情况下实现预期的结果?最好使用单引号引起来的文本块,因为它比尝试转义原始文本中的所有内容(甚至空格)更健壮和轻巧。

最佳答案

Rob Simmers在我目前正在使用的另一个论坛上向我通报了一个相当整洁的解决方案。

原始文本:

Test text
!@#$%^&*()_+-=[]\{}|;':",./<>?

用5个字符替换的字符串({ = {{} = }}' = '',crlf = {0}" = {1}):
Test text{0}!@#$%^&*()_+-=[]\{{}}|;'':{1},./<>?

Powershell.exe命令:
powershell.exe -command "$str = 'Test text{0}!@#$%^&*()_+-=[]\{{}}|;'':{1},./<>?' -f [System.Environment]::NewLine, [Char] 0x22 ; Set-Clipboard $str"

输出(放置在剪贴板上的文字)-与输入相同,根据需要:
Test text
!@#$%^&*()_+-=[]\{}|;':",./<>?

关于powershell - 执行Windows Powershell命令将文本复制到剪贴板(包括 `r` n'),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51398489/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com