gpt4 book ai didi

windows - CMD:迭代从另一个命令管道传输的标准输入

转载 作者:可可西里 更新时间:2023-11-01 12:01:21 26 4
gpt4 key购买 nike

最近 question包含一个我曾经思考过很多次但仍然不知道它是否有优雅解决方案的问题:

假设,我有一个形成文件名或目录列表的命令:dir/B/AD。然后,我想将命令的结果通过管道传递给迭代器,该迭代器会对每个文件名执行某些操作。

我该怎么做?

当然可以使用 for 的反引号版本代替管道:

for /F "usebackq" %F in (`dir /B /AD`) do @echo %F

但我感兴趣的是从 stdin 获取数据,这样我就不会对文件名的来源进行硬编码。

最佳答案

我碰巧自己找到了解决办法:

dir /B /AD | for /F "usebackq" %F in (`findstr "."`) do @echo %F

这比我想象的还要好,因为它允许直接在反引号表达式中进行过滤。例如要排除一些特定的文件名(.svn 和 _lib),我可以这样写:

dir /AD /B | for /F "usebackq" %F in (`findstr /V "\.svn _lib"`) do @echo %F

关于windows - CMD:迭代从另一个命令管道传输的标准输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9749071/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com