使用特殊字符回显到剪贴板

Ken*_*enL 6 escape-characters cmd.exe

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

C:\Windows\System32\cmd.exe /c echo 28376^>1847|clip
Run Code Online (Sandbox Code Playgroud)

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

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

Dav*_*ill 7

怎么了?

使用以下命令将剪贴板清空:

echo 28376^>1847|clip
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

echo 28376^^^>1847|clip
Run Code Online (Sandbox Code Playgroud)

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

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