我想知道是否可以从批处理文件中的管道读取。如果我写:
echo Test
我明白了,不足为奇,Test
. 那很好。但是如果我想管道输出,并从另一个命令中读取它呢?
echo Test | echo ???
如何通过管道获得与以前相同的结果?谢谢!
编辑:我真正追求的是这个。
我有一个文件列表,我需要用我在一个名为filter.txt
. 所以我必须使用findstr /g:filter.txt
.
但是我需要对匹配的列表文件做一些事情,因为findstr
每个文件都返回一行,所以我必须逐行读取匹配项。
我就是这样做的:
dir /b | findstr /g:filter.txt | for /F "delims=" %a in ('more') do del "%a"
解决方案:
看起来我想做的不是从管道中读取,而只是读取批处理文件中另一个命令的输出。
要进行单行读取,您可以使用以下命令:
echo Test | ( set /p line= & call echo %%line%%)
或者您可以使用它,它也适用于多行输入:
echo Test | for /F "delims=" %a in ('more') do @echo %a
(这种使用更多的技巧在某些情况下可能很有用)。但在我的特殊情况下,解决方案是这样的:
for /F "delims=" %a in ('echo Test') do @echo %a
谢谢大家!