cmdコンソールでコマンドを正常に実行するには、各引数の間に一時停止する必要があります。あなたはちょうど終了するCMDプロセスを待つ必要が引数をcmdに渡してwpfアプリケーションで実行を一時停止する方法
System.Diagnostics.ProcessStartInfo proc = new System.Diagnostics.ProcessStartInfo();
proc.FileName = @"C:\windows\system32\cmd.exe";
proc.Arguments = "/c net start defragsvc";
proc.Arguments = "/c diskpart";
proc.Arguments = "/c sel vol 1";
proc.Arguments = "/c shrink desired =" + shrinksize + "";
proc.Arguments = "/c exit";
proc.Arguments = "/c exit";
proc.Arguments = "/c net stop defragsvc";
System.Diagnostics.Process.Start(proc);
UIスレッドをブロックすることなくこれを行う1つの方法については、最初に重複したマークを参照してください。下の1つの答えで提案された、より基本的な、GUI非友好的なアプローチについては、2番目に重複したものを参照してください。 –