当我注意到这一点时,我正在查看批量重定向句柄:
这里是link
它提到句柄 3-9 未定义,可以由程序定义。现在我已经阅读了有关在 C# 中执行此操作的信息,但我想知道这在 cmd/batch 中是否可能 - 如果可以,它的限制/用途是什么。
如果在cmd中不可能,我将如何使用它,它是否可以作为将数据输出到屏幕并同时将其重定向到文件的解决方案(这是一个无法合法完成的问题)同时)。
谢谢,莫娜。
批处理文件仅限于管理两个文件:STDIN 用于输入(SET /P)操作,STDOUT 用于输出(ECHO 等)操作;但是,我们可以在批处理文件中访问多个输入和输出文件。怎么做?采用相对简单的方法:只需将附加文件连接到未使用的句柄 (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
可以使用相同的方法生成多个输出文件。
See: 通过标准句柄访问多个文件
以及更技术性的解释here
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)