First, a caution. An incomplete whitelist may cause deletion of important files. Furthermore, these 'junk folders' are often required for the correct operation of software that created them. If you still opt for this solution, here's a one-liner, with line breaks for readability:
pushd C:\Users\John\Documents &&
for /D %i in (*) do @(
echo %i| findstr /V /I /R /C:"^Important$" /C:"^Keep me$" > NUL &&
echo rmdir /S /Q %i
) & popd
In its current form, this statement does not do anything harmful. The second echo displays, rather than executes the 'rmdir' command and is included as a precaution. Check whether the script would work as intended, then remove the second occurence of 'echo'.
A brief explenation.
pushd temporarily changes directory to the documents folder.
for /D lists all directories in there. For each directory,
findstr matches its name against the whitelist. The switches
/V /I /R print only non-matching entries, make the search case-insensitive and enable regular expressions. Every directory that is to be kept is then listed as
/C:"^dirname$". Directories not on the whitelist will make
findstr return errorlevel zero, thus executing the command after the double ampersands, i.e.
rmdir /S /Q %i, deleting that directory, empty or not, without asking for confirmation.
If run from a batch file instead of directly from the command line, replace every