diff --git a/tools/windows/tool_setup/idf_cmd_init.bat b/tools/windows/tool_setup/idf_cmd_init.bat index 853dcf4da7..039266e7b9 100644 --- a/tools/windows/tool_setup/idf_cmd_init.bat +++ b/tools/windows/tool_setup/idf_cmd_init.bat @@ -18,8 +18,8 @@ if "%~2"=="" ( goto :end ) -set IDF_PYTHON_DIR=%1 -set IDF_GIT_DIR=%2 +set "IDF_PYTHON_DIR=%1" +set "IDF_GIT_DIR=%2" :: Strip quoutes set "IDF_PYTHON_DIR=%IDF_PYTHON_DIR:"=%" @@ -69,7 +69,7 @@ echo Adding ESP-IDF tools to PATH... :: It is possible to do this without a temporary file (running idf_tools.py from for /r command), :: but that way it is impossible to get the exit code of idf_tools.py. set "IDF_TOOLS_EXPORTS_FILE=%TEMP%\idf_export_vars.tmp" -python.exe %IDF_TOOLS_PY_PATH% --tools-json %IDF_TOOLS_JSON_PATH% export --format key-value >"%IDF_TOOLS_EXPORTS_FILE%" +python.exe "%IDF_TOOLS_PY_PATH%" --tools-json "%IDF_TOOLS_JSON_PATH%" export --format key-value >"%IDF_TOOLS_EXPORTS_FILE%" if %errorlevel% neq 0 goto :end for /f "usebackq tokens=1,2 eol=# delims==" %%a in ("%IDF_TOOLS_EXPORTS_FILE%") do ( diff --git a/tools/windows/tool_setup/idf_setup.iss.inc b/tools/windows/tool_setup/idf_setup.iss.inc index 30c626a8dc..c1dd9e1139 100644 --- a/tools/windows/tool_setup/idf_setup.iss.inc +++ b/tools/windows/tool_setup/idf_setup.iss.inc @@ -142,7 +142,7 @@ begin end; ExtractTemporaryFile('7za.exe') - CmdLine := ExpandConstant('{tmp}\7za.exe x -o' + ExpandConstant('{tmp}') + ' -r -aoa ' + IDFZIPFileName); + CmdLine := ExpandConstant('{tmp}\7za.exe x -o' + ExpandConstant('{tmp}') + ' -r -aoa "' + IDFZIPFileName + '"'); IDFTempPath := ExpandConstant('{tmp}\esp-idf-') + IDFZIPFileVersion; Log('Extracting ESP-IDF reference repository: ' + CmdLine); Log('Reference repository path: ' + IDFTempPath); @@ -212,9 +212,9 @@ begin end else begin Log('idf_tools.py does not exist in IDF directory, using a fallback version'); IDFToolsPyCmd := ExpandConstant(PythonExecutablePath - + ' {app}\idf_tools_fallback.py' + + ' "{app}\idf_tools_fallback.py"' + ' --idf-path ' + IDFPath - + ' --tools {app}\tools_fallback.json'); + + ' --tools "{app}\tools_fallback.json"'); end; Log('idf_tools.py command: ' + IDFToolsPyCmd); @@ -238,7 +238,9 @@ begin ForceDirectories(ExpandConstant('{group}')); Destination := ExpandConstant('{group}\{#IDFCmdExeShortcutFile}'); Description := '{#IDFCmdExeShortcutDescription}'; - Command := ExpandConstant('/k {app}\idf_cmd_init.bat "') + PythonPath + '" "' + GitPath + '"'; + { If cmd.exe command argument starts with a quote, the first and last quote chars in the command + will be removed by cmd.exe; each argument needs to be surrounded by quotes as well. } + Command := ExpandConstant('/k ""{app}\idf_cmd_init.bat" "') + PythonPath + '" "' + GitPath + '""'; Log('CreateShellLink Destination=' + Destination + ' Description=' + Description + ' Command=' + Command) try CreateShellLink(