Redirect output of command in for loop of batch sc

2019-02-04 10:34发布

问题:

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

What I'm attempting to do here is discard the err output of the command (and loop over the stdout output). However, it complains:

2> was unexpected at this time.

Is this some way to achieve this?

回答1:

in this case you need to escape the > like this

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


回答2:

I believe you need a delimiting space between the "2" and the ">". Without that delimiter my dir test output still displayed on the screen. Furthermore, I believe that by sending the output of the dir command to null will not provide any data back for the set to process.