Como extrair arquivos ZIP com a linha de comando do WinRAR?

Ao tentar extrair arquivos zip, recebo o erro:

c: \ caminho \ nome.zip não é arquivo RAR
Nenhum arquivo para extrair

Meu código é:

p.StartInfo.FileName = @"C:\Program Files\WinRAR\rar.exe";
p.StartInfo.Arguments = string.Format("x -o- {2} \"{0}\" * \"{1}\"\\ ",
  szFN,
  outFolder,
  passWord == null ? "" : string.Format("-p\"{0}\"", passWord));

A versão GUI pode extrair arquivos zip e 7z.

Por que isso não funciona? Como posso extrair arquivos zip e 7z?

(NOTA: Eu tenho código-fonte diferente para 7zip. Eu acho que posso mesclar os dois e usar apenas o acima, quando o arquivo tem uma extensão rar. Mas eu não gosto dessa solução.)

questionAnswers(4)

yourAnswerToTheQuestion