@REM deaktiviere echo der Befehle
@echo off
set folder="C:\test"
REM Variable muß normalerweise nicht gesetzt werden, da Winrar dem Systempfad hinzugefügt wird
REM Außerdem kann einfach der Befehl WinRAR.exe verwendet werden.
REM Der Sauberkeit wegen füttern wir die Variable "natürlich", sprich mit einem ganz sauberen Pfad ohne irgendwelche Verzierungeren. Hilft später bei der Verwendung.
set unrar=C:\Program Files\WinRAR
REM Der Inhalt der Klammer war fehlerhaft.
REM Die Variable %unrar% enthält Leerzeichen (siehe oben). Da müssen wir auf umschließende " " achten.
REM Wichtig: SET schmeißt alles rein was da steht, auch Anführungszeichen; deswegen ist es wichtig, daß man da den Überblick behält (oder, wie hier, einfach keine " " mit reinnimmt). Ansonsten käme unten
REM zusammen ""C:\Program Files\WinRAR\"unrar" heraus (literal).
REM Was syntaktisch gefährlich werden kann und ggfs. nicht funktioniert.
REM Das %%I ist case sensitiv. Würde deshalb das I dort dringend durch was anderes ersetzen.
REM Groß I und klein l sehen einander zu ähnlich und wenn man nur einen Teil davon durch klein i und groß L zur Unterscheidung ersetzt (aber nicht alle) funktioniert es auch nicht.
REM %folder% funktioniert nur, da keine Leerzeichen im Pfad enthalten sind.
REM Allerdings beißen sich Anführungszeichen und die FOR /F Syntax.
REM Für bessere Portabilität (zB wenn Folder C:/der test Pfad/ enthält): HELP FOR angucken und den Abschnitt zu USEBACKQ durchgehen.
FOR /F %%I IN ('dir /S /B %folder%\*.rar') DO @start "%unrar%\winrar.exe" x %%I %%~pI