命令行命令命令

命令行命令命令

问题描述:

今天我想获取特定目录中的文件列表。做到这一点,最简单的方法是打开的提示和运行命令行命令命令

dir > filelist.txt 

我认为首先是“dir”命令运行,然后将其输出创建。它被重定向到文件。

然而有趣的是,“Filelist.txt中”的目录清单中包括“fielist.txt”与未预期的零个字节。

一旦命令完成“Filelist.txt中”实际上示出了作为具有450个字节(当我执行DIR没有重定向,相同的提示)。

1)为什么'filelist'txt'显示出来呢?

2)什么是命令提示符在幕后做?

我认为首先运行'dir'命令,然后创建其输出。

输出会在哪里住在其间?

输出是默认显示在控制台上,即由程序输出后几乎立即。现在

,如果你输出重定向到一个文件,相反,它被写入,因为它会被写入到控制台,文件:此刻的程序写入输出。

即使命令没有输出,文件仍然被创建。控制台首先尝试创建请求的输出文件;如果失败,请求的命令甚至不会被执行。

+0

我假定存在,其中每个命令运行时,它的输出被缓冲(在这种情况下将不包括下一个输入),然后传递到下一个输入的背景一些缓冲。有点像水槽或中间件。 –