簡體   English   中英

批量使用剪輯時轉義字符

[英]Escape Characters When Using Clip in Batch

在命令行上運行的命令是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^| 但我想不通。 可能嗎?

你的命令行被解析了好幾次,所以你必須使用足夠的轉義來隱藏所有的特殊字符:

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

首先解析整個命令行,結果如下:

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

接下來再次解析管道 ( | ) 的每一側,因此左側結果為這一行:

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

如您所見,我還轉義了右括號,因此代碼甚至可以在帶括號的代碼塊中使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM