先看看下面两个代码:- @echo off
- set str="ping 127.1 | find "from""
- for /f "tokens=*" %%i in ('%str%') do (
- echo %%i
- )
- pause
复制代码
- @echo off
- for /f "tokens=*" %%i in ('ping 127.1 ^| find "from"') do (
- echo %%i
- )
- pause
复制代码 均能正常运行,结果为:
Reply from 127.0.0.1: bytes=32 time<1ms TTL=64
Reply from 127.0.0.1: bytes=32 time<1ms TTL=64
Reply from 127.0.0.1: bytes=32 time<1ms TTL=64
Reply from 127.0.0.1: bytes=32 time<1ms TTL=64
请按任意键继续. . .
为什么能正常运行呢?
因为上面的代码中两个单引号之间的一串字符,系统是当成普通字符串来处理的。
要使一串字符成为普通字符串,有两个办法,一是用转义符^ 二是用双引号括起来,这样系统就认为是普通字符串了。 |