【发布时间】:2013-06-11 09:20:57
【问题描述】:
...
for /F %%F in ('dir /B %* 2> nul') do (
...
我在这里尝试做的是丢弃命令的错误输出(并遍历 stdout 输出)。但是,它抱怨:
2> was unexpected at this time.
这是实现这一目标的某种方式吗?
【问题讨论】:
标签: batch-file for-loop cmd io-redirection
...
for /F %%F in ('dir /B %* 2> nul') do (
...
我在这里尝试做的是丢弃命令的错误输出(并遍历 stdout 输出)。但是,它抱怨:
2> was unexpected at this time.
这是实现这一目标的某种方式吗?
【问题讨论】:
标签: batch-file for-loop cmd io-redirection
在这种情况下,您需要像这样对 > 进行转义
for /F %%F in ('dir /B %* 2^> nul') do (
【讨论】:
我相信您需要在“2”和“>”之间有一个分隔空间。没有那个分隔符,我的 dir 测试输出仍然显示在屏幕上。此外,我相信通过将 dir 命令的输出发送到 null 不会为集合提供任何数据来处理。
【讨论】:
2> 更改为2 > 将重定向STDOUT 而不是STDERR,从而阻止处理实际目录列表。正如@RGuggisberg 正确指出的那样,重定向运算符必须在嵌套命令中进行转义。