windowsfilecmd

Recursively delete 0KB files using windows cmd


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.


Solution

    1. Iterate recursively over the files:

      for /r %F in (*)
      
    2. Find out zero-length files:

      if %~zF==0
      
    3. 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.