标题: 关于在for /f 中转义符号的使用心得 [打印本页]
作者: 悬崖之树 时间: 2013-2-4 22:20 标题: 关于在for /f 中转义符号的使用心得
先看看下面两个代码:- @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
请按任意键继续. . .
为什么能正常运行呢?
因为上面的代码中两个单引号之间的一串字符,系统是当成普通字符串来处理的。
要使一串字符成为普通字符串,有两个办法,一是用转义符^ 二是用双引号括起来,这样系统就认为是普通字符串了。
作者: 悬崖之树 时间: 2013-2-4 22:24
而下面的代码就不能运行了:- @echo off
- for /f "tokens=*" %%i in ('"ping 127.1 | find "from""') do (
- echo %%i
- )
- pause
复制代码
估计可能是括号里面的双引号配对混乱造成的。
作者: CrLf 时间: 2013-2-5 01:17
回复 2# 悬崖之树
这条貌似不会出错
作者: Demon 时间: 2013-2-5 01:56
回复 悬崖之树
这条貌似不会出错
CrLf 发表于 2013-2-5 01:17
LZ用的是Windows 9
作者: CrLf 时间: 2013-2-5 15:20
回复 4# Demon
或者是比windows7先进14倍的内个系统...
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |