标题: [文本处理] 请教批处理2^>nul^是什么含义? [打印本页]
作者: 宫商角徵羽 时间: 2014-9-24 17:13 标题: 请教批处理2^>nul^是什么含义?
请教各路朋友:
常用到代码如下- for /f "tokens=6 delims==m" %%i in ('ping /n 2 %%a 2^>nul^|findstr /i "Average 平均"')
复制代码
其中的nul是否就是所谓的重定向?那么它两边的^各代表什么意思呢?
与常用的2>nul 有什么区别?
通过搜索对后面一个^有了一个清楚的认识,你知道的,|的作用是连接两条命令,把第一条命令的结果作为第二条命令的参数,先加深一下印象:
echo abcdef|findstr "a"
在echo abcdef命令的输出结果中查找字符a。
我这样解释给你好了,拿Null的例子来说。
for /f "tokens=2 delims=:" %%i in ('ipconfig /all|findstr /c:"IP Address"') do @echo %%i
for的集合中没有用^对|转义,而出错,为何出错呢?
这是因为被系统误认为|之前的第一条命令是所有的红色部分,而不是集合中的ipconfig/all ,第二条命令是所有的蓝色部分,而不是findstr /c:"IP Address"'
for /f "tokens=2 delims=:" %%i in ('ipconfig /all
你能告诉我这条命令是什么意思吗?
你肯定会说这不是一条完整的命令,既然不是完整的命令了,当然出错。所以必须加^对|转义,它连接的只是ipconfig/all和findstr /c:"IP Address"
其他的& && || > >>同样道理。
那么对于2^>nul又如何理解呢?
作者: Batcher 时间: 2014-9-24 17:43
因为 > 是特殊字符,所以放在 for 命令里面需要使用转义符号
与常用的 2>nul 没有什么区别
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |