首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >批量使用剪辑时转义字符

批量使用剪辑时转义字符
EN

Stack Overflow用户
提问于 2019-12-12 12:29:07
回答 1查看 135关注 0票数 2

在命令行上工作的命令是for /f "tokens=1* delims= " %A in ('nslookup myip.opendns.com. resolver1.opendns.com 2^>NUL^|find "Address:"') Do (echo %B)

在一个成为for /f "tokens=1* delims= " %%A in ('nslookup myip.opendns.com. resolver1.opendns.com 2^>NUL^|find "Address:"') Do (echo %%B)的批处理中,它可以工作

但是要复制到剪贴板,我需要对2^>NUL^|中的转义字符做更多的工作。在批处理中,我得到了最接近的echo.for /f "tokens=1* delims= " %%A in ('nslookup myip.opendns.com. resolver1.opendns.com 2^^^>NUL^^^|find "Address:"') Do (echo %%B)|clip

它的输出是for /f "tokens=1* delims= " %A in ('nslookup myip.opendns.com. resolver1.opendns.com 2>NUL|find "Address:"') Do (echo %B),它失败了,因为2>nul|没有正确转义。

我尝试在2>NUL|中添加一个第四甚至第五个插入符,尝试将输出裁剪为2^>nul^|,但我搞不清楚。有可能吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-12 13:33:05

您的命令行被解析了几次,因此您必须使用足够的转义来对所有这些字符隐藏特殊字符:

代码语言:javascript
复制
echo for /F "tokens=1* delims= " %%A in ('nslookup myip.opendns.com. resolver1.opendns.com  2^^^^^^^> nul ^^^^^^^| find "Address:"'^) Do (echo(%%B^) | clip

首先,对整个命令行进行解析,从而生成以下行:

回波用于/F "tokens=1* delims=“%A in ('nslookup myip.opendns.com. resolver1.opendns.com 2^^^> nul ^^\\查找”Address:“) Do (%B)

接下来,将再次解析管道的每一侧(|),因此左边的结果如下:

回波用于/F "tokens=1* delims=“%A in ('nslookup myip.opendns.com. resolver1.opendns.com 2^> nul ^ find”Address:‘’) Do (%B)

正如您所看到的,我也转义了结束括号,所以代码甚至可以在带括号的代码块中使用。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59304615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档