MS-DOSはシングルプロセスの「オペレーティングシステム」であるため、非同期サブプロセスは利用できません。特に、シェルモードおよびその派生機能は動作しません。シェルモードやGUDを含め、非同期サブプロセスを利用するEmacsの機能の多くも、MS-DOSでは動作しません。判断に迷った場合は、実際に試してみてください。動作しないコマンドは、非同期プロセスがサポートされていない旨のエラーメッセージを出力します。
EmacsでM-x compileによるコンパイル、M-x grepによるファイル検索、M-x diffによるファイル間の差分表示は、インフェリアープロセスを同期的に実行することで動作します。つまり、インフェリアープロセスが完了するまで、これ以上の編集はできません。
また、ispellプログラムの同期呼び出しに対する特別なサポートにより、スペルチェックも機能します。これは、他のプラットフォームにおける非同期呼び出しよりも低速です。
MS-DOSでは動作しないShellモードの代わりに、M-x eshellコマンドを使用できます。これにより、完全にEmacs Lispで実装されたPOSIX準拠のシェルを提供するEshellパッケージが呼び出されます。
これに対し、ネイティブのWindowsアプリケーションとしてコンパイルされたEmacsは、非同期サブプロセスをサポートしています。Windows 9X/MEおよびWindows NT/2K/XP/Vista/7/8/10におけるサブプロセスを参照してください。
lpr-buffer(ハードコピーの印刷を参照)やps-print-buffer(PostScriptハードコピーを参照)などの印刷コマンドは、出力をプリンターポートのいずれかに送信することでMS-DOS上で動作します。印刷とMS-DOSを参照してください。
MS-DOS上でサブプロセスを同期的に実行する場合は、プログラムが確実に終了し、キーボード入力を読み取ろうとしないようにしてください。プログラムが自発的に終了しない場合、MS-DOSにはプロセスを終了させる一般的な手段がないため、強制的に終了させることはできません。このような場合には、C-c または C-Break を押すことが有効な場合があります。
MS-DOSでは、他のマシン上のファイルへのアクセスはサポートされていません。また、ネットワークリダイレクタを用いてMS-DOSにネットワークアクセス機能が組み込まれていない限り、メールの送信やWebブラウジング、リモートログインといったその他のネットワーク関連コマンドも動作しません。
MS-DOS版のDiredではls-lispパッケージを使用しています(MS-Windowsにおけるlsのエミュレーションを参照)。そのため、MS-DOS版のDiredでは、dired-listing-switches変数で指定可能なオプションの一部しかサポートしていません。利用可能なオプションは、‘-A’、‘-a’、‘-c’、‘-i’、‘-r’、‘-S’、‘-s’、‘-t’、および‘-u’です。