is a command-line Windows utility for faster
The program uses multiple threads to enumerate and delete the contents
of specified folder. It interfaces directly with
and employs a lockless,
dispatch to distribute the work between threads.
It also has an option of using
which allows deleting a file with a single
vs. three syscalls needed by the standard
In other words, it attempts to speed up bulk deletion by using lighter
requests and having several of them "in flight" at all times.
There are several ways to delete a folder using stock Windows
tools. On the command line side we have:
rmdir /s /q folder
del /f /s /q folder
followed by rmdir /s /q ...
robocopy /mir empty-folder folder /log:nul
There are also PowerShell analogs of the same. They aren't faster.
And finally there's Windows Explorer that beats them all in the
race for the last place, taking nearly 70 seconds to do the same job.
For local folders byenow may
show a speed up of 2x or
it may be the same as rmdir
. It all depends on the state of the file
cache, size of the folder, type of the device (HDD or SDD),
overall machine load, etc.
It is really quite hard to get an accurate comparision of any two
methods due to how many setup-specific variables there are in play
that add a lot of volatility to the measurements.
For remote folders however the speed up of 2x is all but guaranteed. This has to do with the network latency that causes the remote end to sit idle while our requests are traveling to and back from it.
By running multiple requests in parallel we can fill the network pipe so that the remote end will always have another request to process once it's done with its current one.
The program is freeware. The archive includes both 32-bit and 64-bit binaries.
byenow-0.11.zip | 200KB
Released on May 11, 2023
By default, byenow
will use as many threads as there are CPU cores
and it will scan the folder and delete things simultaneously
will cause the program to first scan the folder and
start deleting the contents next.
will cause the program just to scan the folder.
will set the thread count to 13.
will suppress the confirmation prompt.
will allow deleting C:\Windows, C:\Users and their children.
will allow for a path that points at a file
will not delete the folder itself, just the contents.
will cause files to be removed with NtDeleteFile.
will output details of all errors if any encountered.
will show the progress as a single line.
will show the size of all found / deleted files.
The program understands if its output is being redirected, in which
case it will not
display any progess at all, but output only
a summary on completion.
On successful completion with no errors the program will exit with 0.
If it completes with errors, it will exit with 10 + log₁₀
It will also return 2 on Ctrl-C, 3 or 4 if it crashes and a variety of
other codes if it doesn't like the arguments, etc. For details see the
Source of the program is available at the link below.
that the source is incomplete due to being dependent
on several libraries that are not included in the release. These
libraries are simple Win32 API wrappers, so their function should
obvious just from the function names.
Questions, issues, bugs or suggestions - hesitate not