用特殊字符回显到剪贴板

用特殊字符回显到剪贴板

我相信我正确使用了命令,但使用以下命令后剪贴板是空的:

C:\Windows\System32\cmd.exe /c echo 28376^>1847|clip

我相信问题出>在我正在使用的,并且我使用^转义字符来覆盖。

对于哪里出了问题,有什么建议吗?

答案1

怎么了?

使用以下命令使剪贴板为空:

echo 28376^>1847|clip

它没有按预期工作的原因是:

当管道传输或重定向文本时,应用转义字符会变得稍微复杂一些,管道将启动两个新的 cmd.exe 实例,每个 cmd 进程都通过管道的一侧,并将再次解析它们的部分(使用 cmd 行解析器,而不是使用批处理行解析器)。

来源:引号、转义符、分隔符 - Windows CMD - SS64.com

所以你需要额外的转义字符:

echo 28376^^^>1847|clip

现在,第一个插入符号转义了第二个插入符号^,第三个插入符号转义了,>所以现在新cmd实例继承了>&

进一步阅读:批处理文件 - 为什么在管道代码块内部延迟扩展会失败? - VoidCC

相关内容