我想知道是否可以从批处理文件中的管道中读取数据。如果我写:
echo Test
我明白,毫不奇怪,Test
。那很好。但是如果我想通过管道传输输出并从另一个命令读取它怎么办?
echo Test | echo ???
如何通过管道获得与以前相同的结果?
谢谢!
EDIT:我真正追求的是这个。
我有一个文件列表,我需要用我在名为的文件中逐行放置的一些单词来过滤此列表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
(这个技巧使用more在某些情况下可能有用)。但就我的具体情况而言,解决方案是这样的:
for /F "delims=" %a in ('echo Test') do @echo %a
谢谢大家!
基于这个答案https://stackoverflow.com/a/6980605/1630171 https://stackoverflow.com/a/6980605/1630171看起来回答我的问题的一种方法是这样的:
echo Test | for /F "delims=" %a in ('more') do @echo %a
这有点奇怪,但它有效:)
对我来说,这看起来有点奇怪,没有本地解决方案......但这正是我想要的!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)