diff --git a/build-telemac.bat b/build-telemac.bat
index eccf4d114a913740364cbbfb5727cd0b662fa868..67f5ebf8bec98fab7192d3b91b914ca0c5ed2de6 100644
--- a/build-telemac.bat
+++ b/build-telemac.bat
@@ -17,6 +17,7 @@ set aed2=libaed2-1.2.0
 set gotm=gotm-2019-06-14-opentelemac
 
 set python_version=3.11.8
+set python_launcher_version=3.11.8
 set python=python-%python_version%
 set python_requirements=python_requirements.txt
 set geo_wheels_version=v2024.1.1
@@ -213,27 +214,6 @@ call :write_pysource_bat gnu.static.debug
 call :write_pysource_bat gnu.dynamic.debug
 popd
 
-rem Create a .bat for each .py file in the scripts\python3 directory
-for %%f in (scripts\python3\*.py) do (
-  echo @echo off > scripts\%%~nf.py.bat
-  echo python %%~dp0\python3\%%~nf.py %%* >> scripts\%%~nf.py.bat
-)
-
-rem Patch stbtel_refine.py and stbtel_converter.py to ensure that the batch file
-rem wrapping sbtel.py is called instead of the script itself
-set temp_path=%path%
-for %%a in ("%git_path%\..\..") do set "path=%%~fa\usr\bin;%path%"
-if not %version% == main (
-  echo Patching stbtel_refine.py and stbtel_converter.py...
-  pushd scripts\python3\pretel
-  sed -i 's/stbtel_args\ =\ \[path_stbtel/stbtel_args\ =\ \["stbtel.py"/g' stbtel_refine.py
-  popd
-  pushd scripts\python3\data_manip\conversion
-  sed -i 's/stbtel_args\ =\ \[path_stbtel/stbtel_args\ =\ \["stbtel.py"/g' stbtel_converter.py
-  popd
-)
-set path=%temp_path%
-
 rem Build TELEMAC for gnu.static
 call configs\pysource.gnu.static.bat
 call compile_telemac.py
@@ -417,8 +397,16 @@ curl -L https://www.python.org/ftp/python/%python_version%/%python%-embed-amd64.
 mkdir %python% 2>nul
 tar -xvf python.zip -C %python% || goto install_python_error
 del python.zip
-rem Remove the _pth file
-del %python%\python3*._pth
+
+rem Download the Python launcher and install it in the current user's programs. Any launcher
+rem installed in %LOCALAPPDATA%\Programs\Python\Launcher has priority over the launcher
+rem installed in C:\Windows.
+rem What's more, the launcher will not update an already installed and more recent version.
+curl -OJL https://www.python.org/ftp/python/%python_launcher_version%/win32/launcher.msi
+msiexec /i launcher.msi /quiet
+del launcher.msi
+rem Ensure .py files are properly opened with the Python Launcher
+call :restore_py_launcher
 
 rem Download Python dev.msi package to get Python include folder, required by F2PY
 curl -OJL https://www.python.org/ftp/python/%python_version%/amd64/dev.msi
@@ -428,6 +416,13 @@ cd %python%
 rd /s/q libs
 del dev.msi
 
+rem Remove the _pth file
+del python3*._pth
+
+rem Copy python.exe to python3.exe to ensure the proper execution of TELEMAC
+rem scripts having the shebang form #!/usr/bin/env python3
+copy /y python.exe python3.exe
+
 rem Create the import library for the Python dll, required by F2PY
 mkdir libs 2>nul
 for /f "tokens=1,2 delims=." %%a in ("%python_version%") do set python_lib=python%%a%%b
@@ -615,8 +610,8 @@ echo set PATH=%mingw_path%;%%PATH%%>> %file_name%
 echo:>> %file_name%
 echo rem Add TELEMAC binaries directory to PATH>> %file_name%
 echo set PATH=%%HOMETEL%%\builds\%%USETELCFG%%\lib;%%PATH%%>> %file_name%
-echo rem Add TELEMAC scripts folder to PATH>> %file_name%
-echo set PATH=%%HOMETEL%%\scripts;%%PATH%%>> %file_name%
+echo rem Add TELEMAC Python scripts folder to PATH>> %file_name%
+echo set PATH=%%HOMETEL%%\scripts\python3;%%PATH%%>> %file_name%
 echo rem Add TELEMAC Python scripts to PYTHONPATH>> %file_name%
 echo set PYTHONPATH=%%HOMETEL%%\scripts\python3;%%PYTHONPATH%%>> %file_name%
 echo set PYTHONPATH=%%HOMETEL%%\builds\%%USETELCFG%%\wrap_api\lib;%%PYTHONPATH%%>> %file_name%
@@ -642,4 +637,50 @@ echo rem AED>> %file_name%
 echo set AEDHOME=%%EXTERNAL%%\%aed2%>> %file_name%
 echo rem GOTM>> %file_name%
 echo set GOTMHOME=%%EXTERNAL%%\%gotm%>> %file_name%
-echo set PATH=%%GOTMHOME%%\bin;%%PATH%%>> %file_name%
\ No newline at end of file
+echo set PATH=%%GOTMHOME%%\bin;%%PATH%%>> %file_name%
+
+rem *******************************************************************************
+rem Generate a .reg file to reset Python files association with the Python Launcher
+rem *******************************************************************************
+:restore_py_launcher
+set file_name=reset_py.reg
+echo Windows Registry Editor Version 5.00> %file_name%
+echo:>> %file_name%
+echo [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.py]>> %file_name%
+echo:>> %file_name%
+echo [-HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.py\OpenWithList]>> %file_name%
+echo [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.py\OpenWithList]>> %file_name%
+echo:>> %file_name%
+echo [-HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.py\OpenWithProgids]>> %file_name%
+echo [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.py\OpenWithProgids]>> %file_name%
+echo "Python.File"=hex(0):>> %file_name%
+echo:>> %file_name%
+echo [-HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.py\UserChoice]>> %file_name%
+echo:>> %file_name%
+echo [-HKEY_CURRENT_USER\SOFTWARE\Classes\.py]>> %file_name%
+echo [HKEY_CURRENT_USER\SOFTWARE\Classes\.py]>> %file_name%
+echo @="Python.File">> %file_name%
+echo "Content Type"="text/x-python">> %file_name%
+echo:>> %file_name%
+echo [-HKEY_CURRENT_USER\SOFTWARE\Classes\py_auto_file]>> %file_name%
+echo:>> %file_name%
+echo [-HKEY_CURRENT_USER\SOFTWARE\Classes\Python.File]>> %file_name%
+echo [HKEY_CURRENT_USER\SOFTWARE\Classes\Python.File]>> %file_name%
+echo @="Python File">> %file_name%
+echo:>> %file_name%
+echo [HKEY_CURRENT_USER\SOFTWARE\Classes\Python.File\DefaultIcon]>> %file_name%
+echo @="\"C:\\Users\\%username%\\AppData\\Local\\Programs\\Python\\Launcher\\py.exe\",1">> %file_name%
+echo:>> %file_name%
+echo [HKEY_CURRENT_USER\SOFTWARE\Classes\Python.File\shell]>> %file_name%
+echo:>> %file_name%
+echo [HKEY_CURRENT_USER\SOFTWARE\Classes\Python.File\shell\open]>> %file_name%
+echo:>> %file_name%
+echo [HKEY_CURRENT_USER\SOFTWARE\Classes\Python.File\shell\open\command]>> %file_name%
+echo @="\"C:\\Users\\%username%\\AppData\\Local\\Programs\\Python\\Launcher\\py.exe\" \"%%L\" %%*">> %file_name%
+echo:>> %file_name%
+echo [HKEY_CURRENT_USER\SOFTWARE\Classes\Python.File\shellex]>> %file_name%
+echo:>> %file_name%
+echo [HKEY_CURRENT_USER\SOFTWARE\Classes\Python.File\shellex\DropHandler]>> %file_name%
+echo @="{BEA218D2-6950-497B-9434-61683EC065FE}">> %file_name%
+reg import reset_py.reg
+del reset_py.reg