找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 22905|回复: 1

[文本处理] 请教批处理2^>nul^是什么含义?

[复制链接]
发表于 2014-9-24 17:13:56 | 显示全部楼层 |阅读模式
请教各路朋友:


常用到代码如下
  1. 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又如何理解呢?
发表于 2014-9-24 17:43:26 | 显示全部楼层
因为 > 是特殊字符,所以放在 for 命令里面需要使用转义符号
与常用的 2>nul 没有什么区别
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 00:38 , Processed in 0.013917 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表