Can I shut down echo for this “for” cycle inputed

2019-02-15 09:21发布

I was trying to use this excellent answer.

Is there a way to have ONE command line that executes the following (delete all files of size zero) without printing any output?

for /r %F in (*) do if %~zF==0 del "%F"

(It shows all the expanded commands, also when the size is not zero)

I have tried to use How to redirect stderr to null in cmd.exe, (trying >, 1> and 2>) with no avail...

标签: windows cmd
2条回答
等我变得足够好
2楼-- · 2019-02-15 09:40
@echo off && for /r %F in (*) do if %~zF==0 del "%F" > NUL

The > NUL is because I can't recall if certain situations cause del to try to output

查看更多
做自己的国王
3楼-- · 2019-02-15 09:52

@ suppresses the output for one command. So the following does what you want:

for /r %F in (*) do @if %~zF==0 @del "%F"

To show (only) the files that were deleted:

for /r %F in (*) do @if %~zF==0 del "%F" & echo removed %F
查看更多
登录 后发表回答