Recursively delete 0KB files using windows cmd

cmd, file, windows

Solution

Iterate recursively over the files:

for /r %F in (*)

Find out zero-length files:

if %~zF==0

Delete them:

del "%F"

Putting it all together:

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

If you need this in a batch file, then you need to double the `%`:

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

Note: I was assuming that you meant files of exactly 0 Bytes in length. If with 0 KB you mean anything less than 1000 bytes, then above `if` needs to read `if %~zF LSS 1000` or whatever your threshold is.

Problem

I have some process which creates some files of 0KB size in a directory and its sub-directories. How can I delete the files from the file system using the windows command prompt? Any single command or a script that will do the task will work. I can only run simple cmd commands and scripts, working on a remote machine with restricted access.

Original source

Related problems