Я использую пакетный файл для резервного копирования. Я передаю параметры функции, которая вызывает исполняемый файл упаковки. Это работает, если параметры не содержат пробелов. Это соответствующий код:
SET TARGET="%SAVEDIR%\XP.User.Documents.rar"
SET FILES="%DIRUSER%\Eigene Dateien\*"
SET EXLUCDE="%DIRUSER%\Documents\CDs"
call:funcBackup %TARGET% %FILES% %EXLUCDE%
:funcBackup
SET TARGET=%~1
SET FILES=%~2
SET EXCLUDE=%~3
echo."%PACKER% a -r -x"%EXCLUDE%" "%TARGET%" "%FILES%""
::call %PACKER% a -r -x"%EXCLUDE%" "%TARGET%" "%FILES%"
goto:eof
В XP (немецкая версия) %DIRUSER% расширяется до «Documente und Einstellungen».
В этом случае TARGET правильный, но FILES == "Documente" и EXCLUDE == "und", что означает, что сценарий не работает из-за пробелов в %DIRUSER%.
Как я могу это исправить?