1823|7

6423

帖子

17

TA的资源

版主

楼主
 

老白零基础学bat-重定向 [复制链接]

本帖最后由 白丁 于 2016-7-17 17:21 编辑

利用重定向可以方便的将输入输出从默认位置重定向到例如磁盘文件等的其他位置。
1. >
将命令发送到文件或设备,有些命令输出不能重定向(例如错误消息)。
例子
  1. [url=home.php?mod=space&uid=43340]@echo[/url] off
  2. echo 123>123.txt
  3. pause&exit
复制代码
这段代码将向123.txt文件写入123
2. >>
将命令输出添加到文件结尾而不删除文件中已有的信息.
例子
  1. @echo off
  2. echo 123>123.txt
  3. echo 456>>123.txt
  4. echo 789>>123.txt
  5. pause&exit
复制代码
这段代码将先向123.txt第一行写入123,然后在第二行写入456,然后在第三行写入789。如果全部使用>最后文件中只有789
3. <
从文件而不是键盘上获取命令所需的输入.
例子
  1. @echo off
  2. sort < 123.txt
  3. pause&exit
复制代码

新建文件123.txt,文件内容为第一行789,第二行123, 第三行456,运行以上代码,将在命令行窗口显示第一行123,第二行456,第三行789
4. >&
将一个句柄的输出写入到另一个句柄的输入中。
5.  <&
从一个句柄读取输入并将其写入到另一个句柄输出中。
6.  |   
从一个命令中读取输出并将其写入另一个命令的输入中。也称作管道。


最新回复

汇总在此 老白零基础学bat https://bbs.eeworld.com.cn/forum ... 5066&fromuid=536508   详情 回复 发表于 2016-7-19 21:57
点赞 关注
个人签名training
 
 

回复
举报

6423

帖子

17

TA的资源

版主

沙发
 
句柄 句柄的数字代号 描述
STDIN    0 键盘输入
STDOUT 1 输出到命令提示符窗口
STDERR 2 错误输出到命令提示符窗口
UNDEFINED 3-9 这些句柄由应用程序单独定义,并且是各个工具特定的。

个人签名training
 
 
 

回复

6423

帖子

17

TA的资源

版主

板凳
 
使用 & 操作符重定向输出和复制
如果将输出重定向到文件且指定了现有的文件名,Cmd.exe 将以只写方式打开文件并覆盖该文件内容。如果指定了句柄,Cmd.exe 将文件复制到现有句柄中。

要将用户定义句柄 3 复制到句柄 1,请键入:
>&3
要将包括句柄 2(即 STDERR)的所有输出从 ipconfig 命令重定向到句柄 1(即 STDOUT),然后将输出重定向到 Output.log,请键入:
ipconfig.exe>>output.log 2>&1
个人签名training
 
 
 

回复

6423

帖子

17

TA的资源

版主

4
 
复制句柄
重定向操作符 & 可以将输出或输入从一个指定句柄复制到另一个指定的句柄。例如,要将 dir 输出发送到 File.txt 并将错误输出发送到 File.txt,请键入:
dir>c:\file.txt 2>&1
复制句柄时,可以复制该句柄原状态的所有特性。例如,如果一个句柄具有只写访问的属性,则该句柄的所有副本都具有只写访问属性。不能将一个具有只读访问属性的句柄复制到另一个具有只写访问属性的句柄。
个人签名training
 
 
 

回复

6423

帖子

17

TA的资源

版主

5
 
使用 & 操作符重定向输入和副本
要将重定向输入操作符 (<) 与复制操作符 (&) 一起使用,指定的文件必须已经存在。如果输入文件存在,Cmd.exe 将以只读方式打开该文件,然后将文件中包含的字符作为输入发送到此命令(如同从键盘输入一样)。如果指定了句柄,Cmd.exe 将指定的句柄复制到系统现有的句柄中。
例如,要以句柄 0 输入读取(即 STDIN)的方式打开 File.txt,请键入:
要打开 File.txt,并在内容排序后将输出发送到命令提示符窗口(即 STDOUT),请键入:
sort 要查找 File.txt,然后将句柄 1(即 STDOUT)和句柄 2(即 STDERR)重定向到 Search.txt,请键入:
findfile file.txt>search.txt 2<&1
要以句柄 0 输入读取(即 STDIN)的方式复制用户定义句柄 3,请键入:
<&3
个人签名training
 
 
 

回复

6423

帖子

17

TA的资源

版主

6
 
屏蔽命令执行情况
  1. >nul
复制代码
屏蔽错误信息
  1. 2>nul
复制代码
nul是空的意思,>nul 即将默认的命令执行信息重定向到空,不会在命令行出现。
2>nul即将STDERR 2 重定向到空,不会在命令行出现

假如执行一个命令,但是不想在屏幕里看到这个命令的执行情况,可以使用"[命令]>nul"就可以屏蔽命令在屏幕上的输出,但是有的命令执行会出错,即使用了">nul"也不能屏蔽命令产生的信息,所以就在后面加" 2>nul"这个,就是"[命令]>nul+空格+2>nul",这样,不管命令是否正确的运行,都不会在屏幕看到这个命令所产生的屏幕显示了。


个人签名training
 
 
 

回复

2万

帖子

74

TA的资源

管理员

7
 
哈哈   看到标题就知道是  白丁 原创  
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
个人签名

加油!在电子行业默默贡献自己的力量!:)

 
 
 

回复

1万

帖子

203

TA的资源

管理员

8
 
汇总在此
老白零基础学bat
https://bbs.eeworld.com.cn/forum ... 5066&fromuid=536508
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
个人签名玩板看这里:
https://bbs.eeworld.com.cn/elecplay.html
EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表