首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >定义一个新句柄(类似于STDOUT)

定义一个新句柄(类似于STDOUT)
EN

Stack Overflow用户
提问于 2013-11-12 03:50:08
回答 1查看 685关注 0票数 4

在批量重定向句柄时,我注意到:

这是链接

它提到处理3-9是未定义的,可以由程序来定义.现在我已经读过关于在C#中这样做的文章,但是我想知道这在cmd/批处理中是否可行-如果是的话,它的限制/使用是什么。

如果在cmd中不可能,我将如何使用它,它是否是一个解决方案,将数据输出到屏幕并同时将其重定向到文件(这是一个无法同时合法完成的问题)。

谢谢,莫娜。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-12 07:04:46

批处理文件仅限于管理两个文件: STDIN用于输入(SET /P)操作,STDOUT用于输出(回显等)。操作;但是,我们可以访问批处理文件中的多个输入和输出文件。怎么做?以一种相对简单的方式:只需将附加文件连接到未使用的句柄(3-9),并在输入(设置为/P、<&#)或输出(回显>&#)命令中使用批准句柄。

下面的批处理文件将3个输入文件的行合并为一个具有较大行的输出文件:

代码语言:javascript
复制
@echo off
setlocal EnableDelayedExpansion
3<input2.txt 4<input3.txt (
for /F "delims=" %%a in (input1.txt) do (
   set line=
   rem Read from input2.txt (and write line from input1 to output.txt):
   set /P line=%%a <&3
   rem Read from input3.txt (and write line from input2 to output.txt):
   set /P line=!line! <&4
   rem Write line from input3 to output.txt:
   echo(!line!
)
) >output.txt

同一方法可用于生成多个输出文件。

请参阅:通过标准句柄访问多个文件

还有一个更技术性的解释-- 这里

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19920517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档