Batch file 在批处理脚本的for循环中重定向命令的输出

Batch file 在批处理脚本的for循环中重定向命令的输出,batch-file,for-loop,cmd,io-redirection,Batch File,For Loop,Cmd,Io Redirection,我在这里试图做的是放弃命令的err输出(并在stdout输出上循环)。然而,它抱怨: ... for /F %%F in ('dir /B %* 2> nul') do ( ... 这是实现这一点的某种方法吗?在这种情况下,您需要像这样避开> 2> was unexpected at this time. 我相信在“2”和“>”之间需要一个分隔空间。没有该分隔符,my dir测试输出仍显示在屏幕上。此外,我相信,通过将dir命令的输出发送到null,将不会为要处理的集合提供任何数

我在这里试图做的是放弃命令的err输出(并在stdout输出上循环)。然而,它抱怨:

...
for /F %%F in ('dir /B %* 2> nul') do (
...

这是实现这一点的某种方法吗?

在这种情况下,您需要像这样避开>

2> was unexpected at this time.

我相信在“2”和“>”之间需要一个分隔空间。没有该分隔符,my dir测试输出仍显示在屏幕上。此外,我相信,通过将dir命令的输出发送到null,将不会为要处理的集合提供任何数据。

否。将
2>
更改为
2>
将重定向STDOUT而不是STDERR,从而阻止实际目录列表的处理。正如@RGuggisberg正确指出的那样,重定向操作符必须在嵌套命令中转义。Microsoft使用实习生来实现命令shell,我们必须在余生中使用它。。。
for /F %%F in ('dir /B %* 2^> nul') do (