Schäffer wurde Kommandeur des 3. nassauischen Bataillons und 1804 vom Fürsten von Nassau zum Oberstleutnant befördert und zum Vizepräsidenten des Kriegs-Kollegiums, und später zum Präsidenten ernannt. 1806 wurde er Oberst im Brigadestab und am 1. Januar 1808 zum nassauischen General befördert. 1807 führte Schäffer und Kommandeur sämtlicher nassauischer Truppen das nassauische Kontingent in Napoleons Feldzügen gegen Preußen und Schweden. Er kämpfte bei den Belagerungen von Kolberg und Stralsund. Im Oktober 1808 kam Schäffer als Brigadegeneral in den Kriegen auf der Iberischen Halbinsel zum Einsatz, seine Nassauer standen im Armeekorps des Marschalls Lefebvre bei Bilbao, kämpften bei Durango und gingen auf Madrid vor. Im folgenden Jahr 1809 kämpfte er unter Marschall Victor bei Mesa de Ibor (17. März), Medellin (28. März), Talavera (27./28. Juli) und bei Almonacid (11. August). Wegen einer Erkrankung kehrte er 1810 nach Deutschland zurück und wurde er zur Neuorganisation der nassauischen Truppen in den Rheinbund berufen.