Кажется, проблема в вашем стиле присвоения переменных.
Я полагаю, вы устанавливаете переменную DIRUSER, как и другие
set DIRUSER="Dokumente und Einstellungen"
Но тогда содержимое DIRUSER равно "Dokumente und Einstellungen"
, поэтому кавычки являются частью содержимого.
Но затем SET FILES="%DIRUSER%\Eigene Dateien\*"
расширяется до SET FILES=""Dokumente und Einstellungen"\Eigene Dateien\*"
.
Вы можете использовать расширенный стиль set
.
set "var=content"
Это устанавливает содержимое от var
до content
без кавычек, а также все добавленные пробелы за последней цитатой игнорируются.
Итак, ваш код будет
set "SAVEDIR=D:\backup"
set "diruser=Dokumente und Einstellungen"
SET "TARGET=%SAVEDIR%\XP.User.Documents.rar"
SET "FILES=%DIRUSER%\Eigene Dateien\*"
SET "EXLUCDE=%DIRUSER%\Documents\CDs"
call:funcBackup "%TARGET%" "%FILES%" "%EXLUCDE%"
goto :eof
:funcBackup
SET "TARGET=%~1"
SET "FILES=%~2"
SET "EXCLUDE=%~3"
echo."%PACKER% a -r -x"%EXCLUDE%" "%TARGET%" "%FILES%"
::call %PACKER% a
goto :eof