You need to have a break;
in your default case too.
Edit:
Sorry, I didn't quite understand your question. First of all, in your edited version, there's no need to nest each if statement. Also, what do those variables (for example, DOWNLOAD_DIR) equal if these conditions aren't met? Can't you do something on the lines of:
DOWNLOAD_DIR = (process.argv[2] !== undefined) ? PATH + process.argv[2] : '';
DOWNLOAD_ADD = (process.argv[3] !== undefined) ? process.argv[3] : '';
// etc, etc
Then you can add at the end:
LOG = (process.argv.length >= 9) ? process.argv[8] : '';
In your case, it sounds like you'd want to set those empty strings as the default value, meaning the whole thing could be done in a very small amount of code, for example:
var DOWNLOAD_DIR = (process.argv[2] !== undefined) ? PATH + process.argv[2] : '/downloads';