[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
正常情况:
  1. abc
复制代码
输出如下:
  1. 'abc' 不是内部或外部命令,也不是可运行的程序
  2. 或批处理文件。
复制代码
当使用句柄复制:
  1. abc 3>nul 2>&3
复制代码
此时控制台没有输入错误
所以我推测,2>&3,先从 句柄3中取到3的指向(输出设备)。然后让句柄2 也指向 句柄3的指向,即句柄2 此时的输出设备也变为nul.

TOP

至于 <& ,
正常输入是这样的
  1. set /p name=输入
复制代码
控制台敲完指令后,我们输入haoren,然后再输入命令
  1. echo %name%
复制代码
控制台会显示haoren
使用 <& 是这样的
  1. set /p p=输入 3<a.txt 0<&3
复制代码
此时 控制台并不需要我们输入,我们接着敲命令
  1. echo %p%
复制代码
控制台显示的是a.txt中的第一行的内容。
由此对0<&3我们可以理解为:0句柄默认的输入设备是控制台,0<&3之后,将句柄3中的输入设备 给 句柄0. 而句柄3的输入设备我们提前设置为a.txt,所以 句柄0的输入设备就是a.txt了。

TOP

总结如下:
1>a.txt   将句柄1的输出设备变为a.txt,之前输入到控制台的内容会写入到a.txt
0<a.txt   将句柄0的输出设备变为a.txt,之前需要从控制台输入内容,现在直接将a.txt中的第一行作为输入的内容
1>&3     将句柄3的输出设备作为句柄1的输出设备(&3,取到句柄3的输出设备。 如3>a.txt  1>&3  可以理解成1>a.txt)
0<&3    将句柄3的输入设备作为句柄1的输入设备(&3,取到句柄3的输入设备。 如3<a.txt  0<&3  可以理解成0<a.txt)

TOP

返回列表