Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 定义新句柄(类似于STDOUT)_Batch File_Stdout_Stdin - Fatal编程技术网

Batch file 定义新句柄(类似于STDOUT)

Batch file 定义新句柄(类似于STDOUT),batch-file,stdout,stdin,Batch File,Stdout,Stdin,我正在批量查看重定向句柄,这时我注意到: 这是你的电话号码 它提到句柄3-9是未定义的,可以由程序定义。现在我已经读过关于在C#中这样做的文章,但我想知道在cmd/batch中是否可以这样做——如果可以,它的限制/用途是什么 如果在cmd中不可能,我将如何使用它,它是否可以作为一种解决方案,将数据输出到屏幕并同时将其重定向到文件(这是一个无法同时合法完成的问题) 谢谢,Mona。批处理文件仅限于管理两个文件:用于输入(SET/p)操作的STDIN和用于输出(ECHO等)操作的STDOUT;但是

我正在批量查看重定向句柄,这时我注意到:

这是你的电话号码

它提到句柄3-9是未定义的,可以由程序定义。现在我已经读过关于在C#中这样做的文章,但我想知道在cmd/batch中是否可以这样做——如果可以,它的限制/用途是什么

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


谢谢,Mona。

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

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

@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
@echo关闭
setlocal EnableDelayedExpansion

3一些相关内容:太棒了,非常感谢!实际上,我可以在接受输入时使用它将数据输出到控制台吗?可以。只需使用重定向到/从
CON
回显此始终转到console>CON
…以防“here”有时移动:@Wolf:恐怕我不明白你的意思。。。DosTips.com网站上的帖子都有编号,而且这些编号永远不会改变!在“此处”链接的情况下,在我的答案和你的评论中,主题和回复编号都是
t=2836&p=29634#p29634
,因此你的评论完全没有必要。。。