我正在使用一个批处理文件进行备份。我将选项传递给一个调用打包可执行文件的函数。这有效,除非参数中包含空格。以下是相关代码:
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%会扩展为“Dokumente und Einstellungen”。
在这种情况下,TARGET是正确的,但FILES ==“Dokumente”且EXCLUDE ==“und”,这意味着脚本因%DIRUSER%中的空格而失败。
我该如何解决这个问题?