Use for /r compress %%i in (*) do bzip2.exe "%%i"
in your batch file instead of the call to bzip2.exe
directly. bzip2 almost certainly doesn't know how to recurse through subfolders -- standard wildcard globbing libs on Windows generally don't.
Run for /?
from a Command Prompt to see more about the syntax of the for command. If you want to test the command from a prompt instead of a batch file, use 1 percent sign for the variable instead of 2.