Echale un vistazo a
http://www.delphi3000.com/articles/article_2112.asp
Quizá tengas que registrarte para leer el artículo pero me parece que es gratuito. Tiene una función:
function GetDosOutput(const CommandLine: String): String;
a la que le pasas el comando que deseas ejecutar y te devuelve la salida y sin siquiera mostrarte la ventana de ms-dos. A mi me parece que sería lo ideal para lo que quieres pues pones directamente la salida en un memo:
Código:
Memo1.Text := GetDosOutput('c:\winnt\system32\ipconfig.exe');
y ¡listo!