Do you want to find and delete all unwanted zero sized files, recursively from all subfolders? This post explains how to accomplish that with a one line CMD command.
Find files with zero size
forfiles /S /M * /C "cmd /c if @isidr == FALSE if @fsize EQU 0 echo @path"
- Note that this command excludes directories
- If you just want to print the file name and do not need the full path, you can use @file in the place of @path.
- You can restrict the files selection to a certain type. If we need to do only for log files, you can use *.log with /M option. Example below.
forfiles /S /M *.log /C "cmd /c if @isidr==FALSE if @fsize EQU 0 echo @path"
How to delete zero length files recursively
The below command would delete all zero sized files, recursively in all subfolders, provided the user has permissions to do so.
forfiles /S /M * /C "cmd /c if @isidr==FALSE if @fsize EQU 0 del @path"
Be sure to to dry run the command and check the list of the files the command would delete. Use ‘echo’ in place of ‘del’ in the command, as shown in the previous case above.
To delete all zero size log files recursively from all the subfolders, run the below command.
forfiles /S /M *.log /C "cmd /c if @isidr==FALSE if @fsize EQU 0 del @path"
We can even search for files with size less than certain value. For example, to find all files with less than 1KB size, the command would be
forfiles /S /M * /C "cmd /c if @isidr==FALSE if @fsize LSS 1024 echo @path"
You might also want to read