如何将标准输入重定向到Windows命令行中的文件?

Mat*_*att 12 stdin cmd batch-file cat

在Unix上我会做类似的事情:

cat > file.txt
Run Code Online (Sandbox Code Playgroud)

如何在Windows命令提示符或批处理文件中执行此操作?

编辑:基本上,我正在寻找cat没有参数的功能(它从stdin读取并将其吐回到stdout).

Mar*_*wan 21

TYPE CON

CON是用于控制台输入的MS-DOS设备.您可以按如下方式重定向到文件:

TYPE CON>output.txt

要终止,请按Ctrl+ CCtrl+ Z,Enter(Ctrl+ Z= EOF).

  • 啊哈哈!虽然我猜它可能对其他人有用...我可能是我这个年龄段唯一知道优雅`TYPE CON> LPT1`快捷方式的人,可以将MS-DOS变成打字机! (5认同)
  • -1 因为它不起作用:它不是从 stdin 而是从控制台读取。OP 要求提供标准输入。我在win10上测试过。 (3认同)
  • 不要忘记cygwin! (2认同)

dbe*_*ham 9

如果你想要的只是读取stdin并将你读到的内容写入stdout,那么FINDSTR可能会起作用,具体取决于你如何使用它.

只要输入在参数列表的末尾指定为单个文件名,FINDSTR就会输出输入的精确二进制图像.

findstr "^" file.txt
Run Code Online (Sandbox Code Playgroud)

管道或重定向也可能有效,具体取决于输入的内容:

findstr "^" < file.txt
or
type file.txt | findstr "^"
Run Code Online (Sandbox Code Playgroud)

如果在使用FINDSTR重定向或管道输入时发生以下任何情况,输出将被破坏:

  • 任何输入行> 8191个字节
  • 最后一行输入未被\n终止.(如果重定向输入,命令可能会挂起)

如果指定了多个输入文件,FINDSTR将不起作用,因为在这种情况下,文件的名称将用作每行输出的前缀.

FINDSTR也与cat的不同之处在于它无法从stdin和命名文件中读取.

请参阅Windows FINDSTR命令的未记录的功能和限制是什么?了解更多信息.


Car*_*lsh 5

我想more.exe可能是您要寻找的。

它可以同时从控制台接受输入:

more > file1.txt
Run Code Online (Sandbox Code Playgroud)

或通过TYPE CON 无法处理的另一个文件通过管道导入:

type file1.txt | more > file2.txt
Run Code Online (Sandbox Code Playgroud)

more似乎在文件中添加了换行符并展开了制表符,所以不要在二进制数据上使用它!)